zoukankan      html  css  js  c++  java
  • c# 生成excel并导出

    用c#的NPOI读写Excel 1、整个Excel表格叫做工作表:WorkBook(工作薄),包含的叫页(工作表):Sheet;行:Row;单元格Cell。 2、NPOI是POI的C#版本,NPOI的行和列的index都是从0开始 3、POI读取Excel有两种格式一个是HSSF,另一个是XSSF。 HSSF和XSSF的区别如下: HSSF is the POI Project's pure Java implementation of the Excel '97(-2007) file format. XSSF is the POI Project's pure Java implementation of the Excel 2007 OOXML (.xlsx) file format. 即:HSSF适用2007以前的版本,XSSF适用2007版本及其以上的。 以下是生成excel并导出的代码: public void ExportErrorSongIds(long uid) { try { string fileName = "ErrorSongIds.xls"; // 文件名称 string filePath = Path.Combine(HttpRuntime.AppDomainAppPath, "Upload") + "/" + fileName; // 1.检测是否存在文件夹,若不存在就建立个文件夹 string directoryName = Path.GetDirectoryName(filePath); if (!Directory.Exists(directoryName)) { Directory.CreateDirectory(directoryName); } // 2.解析单元格头部,设置单元头的中文名称 HSSFWorkbook workbook = new HSSFWorkbook(); // 工作簿 ISheet sheet = workbook.CreateSheet("失败歌曲"); // 工作表 IRow row = sheet.CreateRow(0); row.CreateCell(0).SetCellValue("原始ID"); row.CreateCell(1).SetCellValue("歌曲名称"); row.CreateCell(2).SetCellValue("歌手名"); row.CreateCell(3).SetCellValue("失败原因"); BsonArray array = _songListService.getErrorExcel(uid); int rowIndex = 1; BsonDocument bd = null; if (array != null && array.Count > 0) { for (int i = 0; i < array.Count; i++) { IRow rowTmp = sheet.CreateRow(rowIndex); bd = (BsonDocument)array[i]; if (bd != null) { rowTmp.CreateCell(0).SetCellValue(bd.GetValue("sourceId").ToString()); rowTmp.CreateCell(1).SetCellValue(bd.GetValue("songName").ToString()); rowTmp.CreateCell(2).SetCellValue(bd.GetValue("singerName").ToString()); rowTmp.CreateCell(3).SetCellValue(string.IsNullOrEmpty(bd.GetValue("errorReason").ToString()) ? "" : bd.GetValue("errorReason").ToString()); rowIndex++; } } } // 4.生成文件 FileStream file = new FileStream(filePath, FileMode.Create); workbook.Write(file); file.Close(); Response.AppendHeader("Content-Disposition", "attachment;filename=ErrorSongIds.xls"); Response.ContentType = "application/ms-excel"; Response.WriteFile(filePath); Response.Flush(); Response.End(); } catch (Exception ex) { throw ex; } }
  • 相关阅读:
    word批量打印工具,c#写的
    word添加页眉脚和设置各页不同的页眉页脚.
    打印机双面打印
    ORACLE OCP认证
    基于.net程序,使用cefsharp开发的打开网页工具,如何不加载图片
    在iis上运行的服务器端程序,运行一段时间后,访问都只出现一行乱码,回收进程池后又好了,求大神回复
    ArcGis API for JavaScript 开发笔记一 加载地图
    修改现有消息类让.net core项目支持Protobuf
    结合现有分布式系统的数据一致性思考
    让现有vue前端项目快速支持多语言
  • 原文地址:https://www.cnblogs.com/java-chanjuan/p/6687376.html
Copyright © 2011-2022 走看看