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 ...
随机推荐
- 使用Python的requests库作接口测试——对HTTP动词的支持
Requests提供了几乎所有HTTP动词的功能:GET,OPTIONS, HEAD,POST,PUT,PATCH和DELETE. 动词GET-查看提交信息 HTTP GET是一个幂等的方法,从给定的 ...
- agc014F Strange Sorting
这套题比较简单,以为自己能够独立A掉D和E,或许就能自己A掉F,看来还真是想多了 题意:给一个$n$的全排列,每次操作把$max(a[1],a[2],...,a[i]) = a[i]$的记为$high ...
- js构造函数+原型
注:普通对象与函数对象 var o1 = {}; var o2 =new Object(); var o3 = new f1(); function f1(){}; var f2 = function ...
- ACdream 1112
题目链接 Alice and Bob Time Limit: 6000/3000MS (Java/Others)Memory Limit: 256000/128000KB (Java/Others) ...
- Spring Bean 作用域
Bean 的作用域 当在 Spring 中定义一个 bean 时,你必须声明该 bean 的作用域的选项.例如,为了强制 Spring 在每次需要时都产生一个新的 bean 实例,你应该声明 bean ...
- java验证码识别
首先参考了csdn大佬的文章,但是写的不全ImgUtils类没有给出代码,无法进行了 写不完整就是制造垃圾 不过这个大佬又说这个大佬的文章值得参考于是又查看这篇文章 有案例https://blog.c ...
- windows device recovery tool 刷机
ch 春节期间,拿出来诺基亚1020拍照,误删软件,无法登陆微软账号,考虑刷机处理 下载windows device recovery tool,进行刷机,但是固件下载一直失败 考虑下载好固件包,ff ...
- ModelAndView返回mav时,报404
报404的可能性太多了 简单来看,404后边有信息,说明请已经分配到了控制器 经过调试发现,mav已经分配到了页面 原因,modelandview的包导入错误,正确的包是 import org.spr ...
- 玩转Spring Boot 自定义配置、导入XML配置与外部化配置
玩转Spring Boot 自定义配置.导入XML配置与外部化配置 在这里我会全面介绍在Spring Boot里面如何自定义配置,更改Spring Boot默认的配置,以及介绍各配置的优先 ...
- ZooKeeper的分布式锁实现
分布式锁一般有三种实现方式: 1. 数据库乐观锁: 2. 基于Redis的分布式锁: 3. 基于ZooKeeper的分布式锁. 本篇博客将介绍第三种方式,基于Zookeeper实现分布式锁.虽然网上已 ...