导出

public FileResult Input()
{
DataTable dt = new DataTable("dd");
using (SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=IOT1706B;Integrated Security=True"))
{
SqlDataAdapter sda = new SqlDataAdapter("select TypeName,Pid from IOTType", conn);
sda.Fill(dt);
}
//创建工作薄
IWorkbook workbook = new HSSFWorkbook();
//创建工作表
ISheet sheet = workbook.CreateSheet("sheet0");
//创建表头行
IRow cells = sheet.CreateRow();
//写入表头
for (int i = ; i < dt.Columns.Count; i++)
{
//创建列赋值
cells.CreateCell(i).SetCellValue(dt.Columns[i].ColumnName);
}
//写入表内容
for (int i = ; i <= dt.Rows.Count; i++)
{
//创建行
IRow cells1 = sheet.CreateRow(i);
for (int j = ; j < dt.Columns.Count; j++)
{
//创建列赋值
cells1.CreateCell(j).SetCellValue(dt.Rows[i - ][j].ToString());
}
}
//导出
using (MemoryStream stream = new MemoryStream())
{
workbook.Write(stream);
return File(stream.GetBuffer(), "applocation/excel", "导出.xls");
} }

导入加事务

public int Post()
{
HttpFileCollection fileBase = HttpContext.Current.Request.Files;
if (Path.GetExtension(fileBase[].FileName)==".xls")
{
try
{
Stream stream = fileBase[].InputStream;
IWorkbook workbook = new HSSFWorkbook(stream);
ISheet sheet = workbook.GetSheetAt();
DataTable dt = new DataTable("d");
IRow cells = sheet.GetRow();
foreach (ICell item in cells)
{
dt.Columns.Add(item.StringCellValue);
} for (int i = ; i <= sheet.LastRowNum; i++)
{
IRow cells1 = sheet.GetRow(i);
int j = ;
DataRow dr = dt.NewRow();
foreach (ICell item in cells1)
{
switch (item.CellType)
{
case CellType.Numeric:
dr[item.ColumnIndex] = item.NumericCellValue;
break;
case CellType.String:
dr[item.ColumnIndex] = item.StringCellValue;
break; case CellType.Boolean:
dr[item.ColumnIndex] = item.BooleanCellValue;
break;
default:
dr[j] = "";
break;
}
}
dt.Rows.Add(dr);
}
using (SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=IOT1706B;Integrated Security=True"))
{
conn.Open();
SqlTransaction tran = conn.BeginTransaction();
SqlCommand cmd = conn.CreateCommand();
cmd.Transaction = tran;
try
{
int n = ; foreach (DataRow item in dt.Rows)
{
cmd.CommandText = "insert into IOTType values(";
foreach (var ii in item.ItemArray)
{
cmd.CommandText += $"'{ii}',";
}
cmd.CommandText= cmd.CommandText.TrimEnd(',');
cmd.CommandText += $")";
n += cmd.ExecuteNonQuery(); }
tran.Commit();
conn.Close();
return n;
}
catch (Exception)
{
tran.Rollback();
return ;
throw;
}
} }
catch (Exception)
{ throw; } }
else
{
return -;
}
}

Mvc Excel导入加事务加导出的更多相关文章

  1. ASP.NET MVC5+EF6+EasyUI 后台管理系统(87)-MVC Excel导入和导出

    本文示例代码下载: 链接:http://pan.baidu.com/s/1jHBdgCA 密码:hzh7 ps:Vs数据库脚本在解压目录下,修改web.config数据库链接,示例代码包含:导入,导出 ...

  2. poi excel导入 数字自动加小数点

    问题:导入excel表,若表格中为整数数字,不管单元格设置成数字格式还是文本格式,导入时都会出现小数点和0. 我遇到的问题是:一个名称,做测试数据的时候做了纯整形数字,发现了这个问题. 解决办法:在代 ...

  3. 利用phpexcel把excel导入数据库和数据库导出excel实现

    <?php ); ini_set(,,,date(,date(,,,date(,,,date(,date(,,,date()     ->setCellValue();); $objPHP ...

  4. 通过export方式导出,在导入时要加{ },export default则不需要

    怎么就是记不住呢?? 通过export方式导出,在导入时要加{ },export default则不需要

  5. C# Excel导入、导出【源码下载】

    本篇主要介绍C#的Excel导入.导出. 目录 1. 介绍:描述第三方类库NPOI以及Excel结构 2. Excel导入:介绍C#如何调用NPOI进行Excel导入,包含:流程图.NOPI以及C#代 ...

  6. ASP.NET MVC5+EF6+EasyUI 后台管理系统(63)-Excel导入和导出-自定义表模导入

    系列目录 前言 上一节使用了LinqToExcel和CloseXML对Excel表进行导入和导出的简单操作,大家可以跳转到上一节查看: ASP.NET MVC5+EF6+EasyUI 后台管理系统(6 ...

  7. C#实现Excel模板导出和从Excel导入数据

    午休时间写了一个Demo关于Excel导入导出的简单练习 1.窗体 2.引用office命名空间 添加引用-程序集-扩展-Microsoft.Office.Interop.Excel 3.封装的Exc ...

  8. ASP.NET 之 常用类、方法的超级总结,并包含动态的EXCEL导入导出功能,奉上类库源码

    实用类:UtilityClass 包含如下方法 判断对象是否为空或NULL,如果是空或NULL返回true,否则返回false 验证手机号是否正确 13,15,18 验证邮箱 验证网址 MD5加密,返 ...

  9. Excel导入导出帮助类

    /// <summary>    /// Excel导入导出帮助类    /// 记得引入 NPOI    /// 下载地址   http://npoi.codeplex.com/rele ...

随机推荐

  1. mingw下的msys显示与输入乱码

    一直很喜欢gcc+vim这个貌似已经不用在强调了,好了,我只是想说明下我的问题是首先从gcc编译出错提示开始的 正如上面所说,安装完MinGW后使用gcc一编译,这程序没有错误还好,这一有错误发现输入 ...

  2. kotlin之数组

    一.使用arrayOf函数定义可以存储任意值的数组 var arr1 = arrayOf(1,2,3,'a') println(arr1[3]) 二.使用arrayOfNulls函数定义数组 var ...

  3. 介绍一下 NDK?

    1.NDK 是一系列工具的集合 NDK 提供了一系列的工具,帮助开发者快速开发 C(或 C++)的动态库,并能自动将 so 和 java 应用一起打包成 apk.NDK 集成了交叉编译器,并提供了相应 ...

  4. nodejs之路由

    声明:在写nodejs代码的时候,很多模块可以封装保存起来,以后的项目都会用到. 1.路由模块 var url=require('url'); //封装方法改变res 绑定res.send() fun ...

  5. ElasticSearch第五步-.net平台下c#操作ElasticSearch详解

    前面我们讲解了关于ElasticSearch的安装配置,以及CRUD 本章我将讲解怎么使用c#操作ElasticSearch. 首先你需要一定的技术储备,比如:asp.net webapi,mvc,j ...

  6. 阶段3 2.Spring_07.银行转账案例_9 基于子类的动态代理

    代理一个普通的java类 导入cglib的包 它还有一个asm的依赖.会自动加进来 创建cglib的文件夹.把proxy里面的Client和Producer复制到cglib文件夹 Producer不实 ...

  7. Closure - Mimicking block scope

    The basic syntax of an anoymous function used as a block scope (often called a private scope) is as ...

  8. Redis 入门 3.3 散列类型

    3.3.1 介绍   散列类型(hash)的键值也是一种字典结构,其储存了字段(field)和字段值的映射,但字段值只能是字符串,不支持其他数据类型,换句话说,散列类型不能嵌套其他的数据类型.一个散列 ...

  9. Docker面试题(二)

    什么是虚拟化? 虚拟化允许您在相同的硬件上运行两个完全不同的操作系统.每个客户操作系统都经历了引导,加载内核等所有过程.您可以拥有非常严格的安全性,例如,客户操作系统无法完全访问主机操作系统或其他客户 ...

  10. jQ的toggle() 方法

    语法:$(selector).toggle(speed,callback,switch) 实例: <script src="js/jquery.min.js">< ...