NPOI操作、导出Excel
- //使用NPOI操作Excel
- private void ExcelNPOI(System.Data.DataTable dt, HttpContext context)
- {
- IWorkbook workbook = null;//工作薄
- IRow row = null;//行
- ICell cell = null;//单元格
- ISheet sheet = null;//工作表
- try
- {
- //如果表中查询的有数据
- if (dt != null && dt.Rows.Count > )
- {
- //创建工作薄
- //workbook = new HSSFWorkbook(); //导出后缀为xls
- workbook = new XSSFWorkbook();//导出后缀为xlsx
- sheet = workbook.CreateSheet("Sheet1");//创建一个名称为Sheet1的表
- int rowCount = dt.Rows.Count;//行数
- int columnCount = dt.Columns.Count;//列数
- //npoi设置Excel样式
- ICellStyle cellStyle = workbook.CreateCellStyle();
- //设置单元格为数字格式
- cellStyle.DataFormat = workbook.CreateDataFormat().GetFormat("0.00");
- //居中对齐
- cellStyle.Alignment = HorizontalAlignment.Center;
- cellStyle.VerticalAlignment = VerticalAlignment.Center;
- //边框
- cellStyle.BorderTop = BorderStyle.Thin;
- cellStyle.BorderBottom = BorderStyle.Thin;
- cellStyle.BorderLeft = BorderStyle.Thin;
- cellStyle.BorderRight = BorderStyle.Thin;
- //创建一个字体样式对象
- NPOI.SS.UserModel.IFont FontRow = workbook.CreateFont();
- //设置字体样式
- FontRow.FontName = "宋体";
- //设置字体加粗样式
- FontRow.Boldweight = (short)FontBoldWeight.Bold;
- //设置字体大小
- FontRow.FontHeightInPoints = ;
- //是否加粗
- //FontRow.IsBold = false;
- //字体样式添加进去
- cellStyle.SetFont(FontRow);
- //合并单元格 起始行号,终止行号, 起始列号,终止列号 execl的行列都是从0开始,而不是从1开始
- sheet.AddMergedRegion(new CellRangeAddress(, , , ));
- //添加第一行 并赋值
- row = sheet.CreateRow();
- row.CreateCell().SetCellValue("值");
- cell = row.GetCell();
- cell.CellStyle = cellStyle;
- //添加第二行 定义表头
- row = sheet.CreateRow();
- //单元格赋值
- row.CreateCell().SetCellValue("值");
- row.CreateCell().SetCellValue("值");
- row.CreateCell().SetCellValue("值");
- row.CreateCell().SetCellValue("值");
- row.CreateCell().SetCellValue("值");
- row.CreateCell().SetCellValue("值");
- //设置列宽
- sheet.SetColumnWidth(, * );
- sheet.SetColumnWidth(, * );
- sheet.SetColumnWidth(, * );
- sheet.SetColumnWidth(, * );
- sheet.SetColumnWidth(, * );
- sheet.SetColumnWidth(, * );
- //设置行高 第一行
- row = sheet.GetRow();
- row.Height = short.Parse((22.5 * ).ToString());
- //使用SetFont方法将字体样式添加到单元格样式中
- cellStyle.SetFont(FontRow);
- //设置行高 第二行
- row = sheet.GetRow();
- row.Height = short.Parse((18.5 * ).ToString());
- //获得第二行的单元格
- List<ICell> cells = row.Cells;
- for (int i = ; i < cells.Count; i++)
- {
- //获得当前行
- cell = row.GetCell(i);
- //设置样式
- cell.CellStyle = cellStyle;
- }
- //写入数据
- for (int i = ; i < rowCount; i++)
- {
- //创建新行
- row = sheet.CreateRow(i + );
- //定义新行行高
- row.Height = short.Parse((13.5 * ).ToString());
- for (int j = ; j < columnCount; j++)
- {
- if (j - >= )
- {
- //创建新的单元格
- cell = row.CreateCell(j - );
- //赋值
- cell.SetCellValue(dt.Rows[i][j].ToString());
- cell.CellStyle = cellStyle;
- }
- }
- }
- string Excelfile = context.Server.MapPath("路径");
- string path = context.Server.MapPath("excel再上一级的路径");
- DirectoryInfo folder = new DirectoryInfo(path);
- //文件夹是否存在当前Excel
- foreach (FileInfo file in folder.GetFiles("*.xlsx"))
- {
- if (file.FullName == Excelfile)
- {
- try
- {
- File.Delete(Excelfile);
- }
- catch (Exception ex)
- {
- Console.Write(ex.Message);
- }
- }
- }
- using (FileStream file = new FileStream(Excelfile, FileMode.Create))
- {
- workbook.Write(file); //写入数据 创建文件。
- file.Close();
- }
- }
- }
- catch (Exception ex)
- {
- }
- }
NPOI操作、导出Excel的更多相关文章
- NPOI导入导出Excel
.net mvc利用NPOI导入导出excel 注意:如何导出的提交方式ajax导出是失效的! 解决方案是:js处理l两个表单的提交 代码: 第一步. 在页面里面加入2个隐藏的iframe, 如下 ...
- .Net core NPOI导入导出Excel
最近在想.net core NPOI 导入导出Excel,一开始感觉挺简单的,后来真的遇到很多坑.所以还是写一篇博客让其他人少走一些弯路,也方便忘记了再重温一遍.好了,多的不说,直接开始吧. 在.Ne ...
- NPOI导入导出EXCEL通用类,供参考,可直接使用在WinForm项目中
以下是NPOI导入导出EXCEL通用类,是在别人的代码上进行优化的,兼容xls与xlsx文件格式,供参考,可直接使用在WinForm项目中,由于XSSFWorkbook类型的Write方法限制,Wri ...
- Npoi导入导出Excel操作
之前公司的一个物流商系统需要实现对订单的批量导入和导出,翻阅了一些资料,最后考虑使用NPOI实现这个需求. 在winform上面实现excel操作:http://www.cnblogs.com/Cal ...
- Excel操作--使用NPOI导入导出Excel为DataTable
1.ExcelHelper封装 namespace NPOI操作Excel { public class ExcelHelper { /// <summary> /// DataTable ...
- <转>Npoi导入导出Excel操作<载>
//Datatable导出Excel private static void GridToExcelByNPOI(DataTable dt, string strExcelFileName) { tr ...
- .net mvc利用NPOI导入导出excel
1.导出Excel :首先引用NPOI包(Action一定要用FileResult) /// <summary> /// 批量导出需要导出的列表 /// </summary> ...
- ASP.Net MVC利用NPOI导入导出Excel
因近期项目遇到所以记录一下: 首先导出Excel: 首先引用NPOI包 http://pan.baidu.com/s/1i3Fosux (Action一定要用FileResult) /// <s ...
- net mvc 利用NPOI导入导出excel
1.导出Excel : 首先引用NPOI包(Action一定要用FileResult) /// <summary> /// 批量导出需要导出的列表 /// </summary> ...
- NPOI操作之一EXCEL数据导入数据库
一.概要 前面讲到NPOI操作EXCEL导出功能,下面讲下从EXCEL里获取数据添加进数据库. 二.代码 HSSFWorkbook hssfworkbook; public void ExcelDat ...
随机推荐
- 016-WebDriver API(2)
1. 多表单切换 WebDriver只能在一个页面上对元素进行识别和定位,无法直接定位frame/iframe表单内嵌页面上的元素,这是就需要通过switch_to.frame()方法将当前定位的主体 ...
- Python-Jsonpath简单入门
原文来自:http://goessner.net/articles/JsonPath/ JSONPath - 是xpath在json的应用. xml最大的优点就有大量的工具可以分析,转换,和选择性 ...
- python 为 class 添加新的属性和方法
通过继承: >>> class Point(namedtuple('Point', ['x', 'y'])): ... __slots__ = () ... @property .. ...
- Maven中央仓库地址大全,Maven中央仓库配置示例
< Maven 中央仓库地址大全 > 在上一篇文章中完成了 < Maven镜像地址大全 >,后来又花了时间又去收集并整理了关于 maven 远程仓库地址,并整理于此,关于 Ma ...
- docker启动redis设置密码
docker run --name picker-redis -p 6379:6379 -d redis --requirepass "认证密码"
- sqoop import 和export的问题
sqoop import DB 2 hive(hdfs)是采用JDBC的过程,与传统hive区别在与多走了thrift server接口(稳定性待学习现在还比较模糊没做过大数据量测试),而export ...
- 解决JSP调用JavaBean出现乱码问题
解决JSP调用JavaBean出现乱码问题 话不多说放代码 144 Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE /* Style D ...
- golang包引用
一.我的GOPATH环境变量值如下图: 二.在GOPATH路径下面的的src目录下面的目录名称就是引用里面包的起始位置,如下图: 三.举例说明:这里引用同一个项目的包,源文件“learn/main/m ...
- Opencv中RGB通道/HSV通道并分离
OpenCV中HSV颜色模型及颜色分量范围 opencv HSV 颜色模型(H通道取值 && CV_BGR2HSV_FULL) [opencv]在hsv颜色空间识别区域颜色 将原图分离 ...
- Delphi 设计模式:《HeadFirst设计模式》Delphi7代码---策略模式之MiniDuckSimulator[转]
1 2{<HeadFirst设计模式>之策略模式 } 3{ 本单元中的类为策略类 } 4{ 编译工具: Delphi7.0 } 5{ E- ...