C# NPOI 导出Excel 日期格式

NPOI 导出Excel时,如果是需要日期格式,在这处理一下,Excel本身支持的是

C# NPOI 导出Excel 日期格式_第1张图片

XSSF开头 和 HSSF开头就是 .xls 和 .xlsx的区别, 可以强制转换


            row = (XSSFRow)sheet.CreateRow(3); //创建行
            cell = NpoiExcelExportHelper._.CreateCells(row, cellStyle, 7, "");

            cell.SetCellValue(DateTime.Now);

            //set dateformat

            XSSFCellStyle xSSFCellStyle1 = (XSSFCellStyle)workbook.CreateCellStyle();
            XSSFDataFormat format = (XSSFDataFormat)workbook.CreateDataFormat();
            xSSFCellStyle1.DataFormat = format.GetFormat("yyyy/m/d");
            cell.CellStyle = xSSFCellStyle1;

关键代码就这么点,网上一堆复制粘贴,很多垃圾玩意。

参考:https://www.cnblogs.com/macol/p/6216306.html

在Excel中我们经常要设置格式,比如说日期格式(yyyymmdd)、小数点格式(1.20)、货币格式($2000)、百分比格式(99.99%)等等,这些东西在过去我们恐怕只能在服务器端生成好,不但增加了服务器端的代码量,还造成了不必要的字符串替换操作,如今NPOI将让服务器从这种完全没有必要的操作中解放出来,一切都将由Excel在客户端处理。

使用NPOI时要注意,所有的格式都是通过CellStyle.DataFormat赋给单元格的,而不是直接赋给单元格。

案例一 日期格式

假设我们现在需要显示的日期的格式为2008年5月5日,可以用下面的代码生成:

HSSFSheetsheet = hssfworkbook.CreateSheet("newsheet");

HSSFCell cell= sheet.CreateRow(0).CreateCell(0);

cell.SetCellValue(newDateTime(2008,5,5));

//set dateformat

HSSFCellStylecellStyle = hssfworkbook.CreateCellStyle();

HSSFDataFormatformat = hssfworkbook.CreateDataFormat();

cellStyle.DataFormat= format.GetFormat("yyyy年m月d日");

cell.CellStyle=cellStyle;

由于这里的“yyyy年m月d日”属于自定义格式(区别于Excel内嵌的格式),所以必须用hssfworkbook.CreateDataFormat()创建一个HSSFDataFormat实例,然后使用format.GetFormat来获取相应的格式,只要是Excel支持的格式表示方式,这种方式都能够实现。

 

你可能感兴趣的:(C#)