使用NPOI设置Excel单元格格式
在项目开发经常需要读写excel,可以使用OleDb读写Excel,但是由于Excel不是数据库,字段的类型不是事先定义好的,在更新单元格内容时,总是提示“标准表达式中数据类型不匹配”,原因时单元格格式问题 。需要在执行更新脚本前,批量修改列的单元格格式。
使用NPOI可以在不关心客户端电脑Office版本的情况下,更新Excel单元格格式,代码如下:
public void ModifySheetCellFormat(){#region 打开Excel表格模板,并初始化到NPOI对象中IWorkbook wk = null;string extension = System.IO.Path.GetExtension(sExcelFilename);FileStream fs = File.OpenRead(sExcelFilename);if (extension.Equals(".xls"))wk = new HSSFWorkbook(fs);elsewk = new XSSFWorkbook(fs);fs.Close();#endregion//List<string> SheetNames = new List<string>();//for (int i = 0; i < wk.NumberOfSheets; i++)//{// SheetNames.Add(wk.GetSheetName(i));//}string sheetname = SelectedSheetName.Substring(1, SelectedSheetName.Length - 3);ISheet sheet = wk.GetSheet(sheetname);IRow row = null;//数据行ICell cell = null;//数据行中的某列for (int i = 0; i < sheet.PhysicalNumberOfRows; i++){row = sheet.GetRow(i);cell = row.GetCell(1);IDataFormat dataformat = wk.CreateDataFormat();ICellStyle style0 = wk.CreateCellStyle();style0.DataFormat = dataformat.GetFormat("@");//转化为汉字大写cell.CellStyle = style0;cell = row.GetCell(52);IDataFormat dataformat2 = wk.CreateDataFormat();ICellStyle style1 = wk.CreateCellStyle();style1.DataFormat = dataformat.GetFormat("@");//转化为汉字大写cell.CellStyle = style1;}FileStream file = new FileStream(sExcelFilename, FileMode.Create);wk.Write(file);file.Close();}
NPOI定义单元格格式有以下种类(参考链接):
IDataFormat dataformat = wk.CreateDataFormat();ICellStyle style0 = wk.CreateCellStyle();style0.DataFormat = dataformat.GetFormat("[DbNum2][$-804]General");//转化为汉字大写ICellStyle style1 = wk.CreateCellStyle();style1.DataFormat = dataformat.GetFormat("0.0"); //改变小数精度【小数点后有几个0表示精确到小数点后几位】ICellStyle style2 = wk.CreateCellStyle();style2.DataFormat = dataformat.GetFormat("#,##0.0");//分段添加,号ICellStyle style3 = wk.CreateCellStyle();style3.DataFormat = dataformat.GetFormat("0.00E+00");//科学计数法ICellStyle style4 = wk.CreateCellStyle();style4.DataFormat = dataformat.GetFormat("0.00;[Red]-0.00");//正数与负数的区分ICellStyle style5 = wk.CreateCellStyle();style5.DataFormat = dataformat.GetFormat("# ??/??");//整数部分+分数ICellStyle style6 = wk.CreateCellStyle();style6.DataFormat = dataformat.GetFormat("??/??");//分数ICellStyle style7 = wk.CreateCellStyle();style7.DataFormat = dataformat.GetFormat("0.00%");//百分数【小数点后有几个0表示精确到显示小数点后几位】
使用NPOI设置Excel单元格格式相关推荐
- .net 导出html 到excel 合并单元格,C#导出Excel,并且设置Excel单元格格式,合并单元格....
注:要添加COM组件 Microsoft Excel 11.0 Object Library 引用. 具体代码如下: using System; using System.Collections.G ...
- 巧用快捷键轻松设置Excel单元格格式
巧用快捷键轻松设置Excel单元格格式 在应用程序中使用快捷键,可以使我们避免在键盘与鼠标之间来回切换,从而节省大量的时间,显著地提高工作效率.多掌握一些常用的快捷键,可以使您告别菜鸟时代,迅速成长为 ...
- POI中设置Excel单元格格式
POI中可能会用到一些需要设置EXCEL单元格格式的操作小结: 先获取工作薄对象: HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb ...
- 【POI框架实战】——POI设置Excel单元格格式
背 景 "这个excel中的数据怎么不能做加法啊?"."标头这一行的字体怎么这么小啊,我都看不清"."这一列能不能换个颜色,明显一些".&q ...
- java设置Excel单元格格式 POI
POI中可能会用到一些需要设置EXCEL单元格格式的操作小结:先获取工作薄对象:HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.cr ...
- C#使用NPOI设置Excel单元格背景颜色(xls,xlsx)
每次用到这个都要去百度,这里记录一下,xls和xlsx两种格式设置背景颜色的区别,这里省略了前面读取模板或者创建excel的过程: xls: ICellStyle style = workbook.C ...
- C#中设置Excel单元格格式
1.全表自动列宽 mysheet.Cells.Select(); mysheet.Cells.Columns.AutoFit(); 2.合并 excelRangeParm.Merge(Missi ...
- python excel 单元格格式_python设置单元格数值格式
python xlwt如何设置单元格格式 python xlwt模块怎么设置excel单元格的属性 如图,默认是general.我想写入的时候就是Text类型.请问应该怎么做. from xlwt i ...
- python 设置excel单元格式,Python xlwt设置excel单元格字体及格式
Python xlwt设置excel单元格字体及格式 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: Python xlwt设置excel单元格字体及格式.txt ...
最新文章
- linux下面安装jdk
- python编写函数_浅谈Python 函数式编程
- python 清除字符串中的 emoji 表情
- java异常标记_java.lang.RuntimeException:错误:0D0680A8:asn1编码例程:ASN1_CHECK_TLEN:错误的标记...
- java中用swing实现绘画_【年度盘点】最受欢迎的5大Java练习项目
- Hive已死,SparkSQL来啦~
- Feign 重试解析
- 【“免费”Windows优秀软件推荐】:Groupy——窗口皆可浏览器标签化
- android手机能安装win10,微软或推可在安卓设备上安装的Win10系统ROM
- 600、000、002、200、300、400等开头的股票代表什么?
- 论车牌识别与电子警察关系
- 数据结构(三)—— 树(1):树与树的表示
- 沈阳大学博客网站的设计与实现
- 基于奇异值分解的图片压缩
- [C语言编程练习][17]假如有n个台阶,一次只能上1个台阶或2个台阶,请问走到第n个台阶有几种走法?
- 【奇奇怪怪的bug】删除文件显示「找不到该项目」怎么办
- [有感]_给天蓝管理层的诺干建议
- 设计神经网络的基本原则,神经网络设计与实现
- 蓝牙、WiFi、ZigBee三大无线通信技术协议模块哪一个是最好的?
- layui富文本编辑器(layedit)的使用
热门文章
- 飞鸽传书不能使用的问题
- 微信开发者工具使用方法
- JavaScript获取元素与绑定事件onclick事件
- vue 报错:Module not found:Error:Can't resolve 'vuex' in XXX
- 电商产品的购物车,这些细节你注意了吗?
- Android10.0 版本兼容
- linux下运行comsol,COMSOL5.3在Linux下的安装
- spring中编程式事务与声明式事务
- 小说人物的身份、行为挖掘,技术角度解读《庆余年》,深度挖掘小说语料 -02...
- 用c 语言如何实现鼠标画图,C在控制台上实现鼠标画图功能