Mvc Excel导入加事务加导出
导出
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导入加事务加导出的更多相关文章
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(87)-MVC Excel导入和导出
本文示例代码下载: 链接:http://pan.baidu.com/s/1jHBdgCA 密码:hzh7 ps:Vs数据库脚本在解压目录下,修改web.config数据库链接,示例代码包含:导入,导出 ...
- poi excel导入 数字自动加小数点
问题:导入excel表,若表格中为整数数字,不管单元格设置成数字格式还是文本格式,导入时都会出现小数点和0. 我遇到的问题是:一个名称,做测试数据的时候做了纯整形数字,发现了这个问题. 解决办法:在代 ...
- 利用phpexcel把excel导入数据库和数据库导出excel实现
<?php ); ini_set(,,,date(,date(,,,date(,,,date(,date(,,,date() ->setCellValue();); $objPHP ...
- 通过export方式导出,在导入时要加{ },export default则不需要
怎么就是记不住呢?? 通过export方式导出,在导入时要加{ },export default则不需要
- C# Excel导入、导出【源码下载】
本篇主要介绍C#的Excel导入.导出. 目录 1. 介绍:描述第三方类库NPOI以及Excel结构 2. Excel导入:介绍C#如何调用NPOI进行Excel导入,包含:流程图.NOPI以及C#代 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(63)-Excel导入和导出-自定义表模导入
系列目录 前言 上一节使用了LinqToExcel和CloseXML对Excel表进行导入和导出的简单操作,大家可以跳转到上一节查看: ASP.NET MVC5+EF6+EasyUI 后台管理系统(6 ...
- C#实现Excel模板导出和从Excel导入数据
午休时间写了一个Demo关于Excel导入导出的简单练习 1.窗体 2.引用office命名空间 添加引用-程序集-扩展-Microsoft.Office.Interop.Excel 3.封装的Exc ...
- ASP.NET 之 常用类、方法的超级总结,并包含动态的EXCEL导入导出功能,奉上类库源码
实用类:UtilityClass 包含如下方法 判断对象是否为空或NULL,如果是空或NULL返回true,否则返回false 验证手机号是否正确 13,15,18 验证邮箱 验证网址 MD5加密,返 ...
- Excel导入导出帮助类
/// <summary> /// Excel导入导出帮助类 /// 记得引入 NPOI /// 下载地址 http://npoi.codeplex.com/rele ...
随机推荐
- 代码实现:输入三个整数x,y,z,请把这三个数由小到大输出。
import java.util.Arrays; import java.util.Scanner; //输入三个整数x,y,z,请把这三个数由小到大输出. public class Test { p ...
- C# 实现播放RTSP 标准协议码流播放
http://www.codeproject.com/Articles/507218/Managed-Media-Aggregation-using-Rtsp-and-Rtphttp://www.st ...
- python调用dll详解
参考链接https://www.cnblogs.com/TQCAI/p/8881530.html https://www.jb51.net/article/52513.htm https://www. ...
- C# 中的字符串内插
$ 特殊字符将字符串文本标识为内插字符串. 内插字符串是可能包含内插表达式的字符串文本. 将内插字符串解析为结果字符串时,带有内插表达式的项会替换为表达式结果的字符串表示形式. 此功能在 C# 6 及 ...
- 如何理解springcloud微服务项目中,eureka,provider,consumer它们之间的关系?
eureka负责注册provider和consumer的服务信息 provider负责与数据库进行交互,实现数据持久化,并给consumer提供服务 consumer与前端交互,通过与Eureka同源 ...
- Shell编程、part4
本节内容 1. shell函数 2. shell正则表达式 shell函数 shell中允许将一组命令集合或语句形成一段可用代码,这些代码块称为shell函数.给这段代码起个名字称为函数名,后续可以直 ...
- 网格UV展开
原文链接 UV展开是什么 参数曲面的参数域变量一般用UV字母来表达,比如参数曲面F(u,v).所以一般叫的三维曲面本质上是二维的,它所嵌入的空间是三维的.凡是能通过F(u,v)来表达的曲面都是参数曲面 ...
- java 换包
1.进入目录:cd /opt/cw_isc/ 2.查看:ls 3.查看进程:ps -ef|grep aw-sc-package-all.jar 4.杀死进程kill -9 3982 5.查看进程:ps ...
- locust 的几种写法及部分内容说明
第一种 ********************************** from locust import HttpLocust, TaskSet, task import json ...
- idea运行时 Process finished with exit code -1073741819 (0xC0000005)
问题描述: idea中启动项目报 Process finished with exit code -1073741819 (0xC0000005) ,如图所示: 问题解决: ...