.NET Core NPOI Excel 导出功能实现:完整指南和示例代码
下面是一个使用NPOI库在.NET Core中实现Excel导出功能的示例代码:\n\n首先,确保你已经在项目中安装了NPOI NuGet包。可以通过在Package Manager Console中运行以下命令来安装:\n\n\nInstall-Package NPOI\n\n\n然后,创建一个名为ExcelExporter.cs的新类,并添加以下代码:\n\ncsharp\nusing System.Collections.Generic;\nusing System.IO;\nusing NPOI.SS.UserModel;\nusing NPOI.XSSF.UserModel;\n\npublic class ExcelExporter\n{\n public static byte[] Export(List<Dictionary<string, object>> data)\n {\n // 创建工作簿\n IWorkbook workbook = new XSSFWorkbook();\n\n // 创建工作表\n ISheet sheet = workbook.CreateSheet("Sheet1");\n\n // 创建表头\n IRow headerRow = sheet.CreateRow(0);\n int columnIndex = 0;\n foreach (string columnName in data[0].Keys)\n {\n headerRow.CreateCell(columnIndex).SetCellValue(columnName);\n columnIndex++;\n }\n\n // 填充数据\n int rowIndex = 1;\n foreach (Dictionary<string, object> rowData in data)\n {\n IRow dataRow = sheet.CreateRow(rowIndex);\n columnIndex = 0;\n foreach (object value in rowData.Values)\n {\n dataRow.CreateCell(columnIndex).SetCellValue(value.ToString());\n columnIndex++;\n }\n rowIndex++;\n }\n\n // 将工作簿转换为字节数组\n using (MemoryStream stream = new MemoryStream())\n {\n workbook.Write(stream);\n return stream.ToArray();\n }\n }\n}\n\n\n这个ExcelExporter类有一个静态方法Export,接受一个List<Dictionary<string, object>>类型的参数data,其中每个Dictionary对象表示一行数据,键是列名,值是对应的单元格的值。\n\n要导出Excel,只需调用该方法并提供数据,然后将返回的字节数组保存为Excel文件即可。以下是一个导出Excel的示例代码:\n\ncsharp\nList<Dictionary<string, object>> data = new List<Dictionary<string, object>>();\nDictionary<string, object> row1 = new Dictionary<string, object>\n{\n { "Name", "John" },\n { "Age", 25 },\n { "Email", "john@example.com" }\n};\ndata.Add(row1);\nDictionary<string, object> row2 = new Dictionary<string, object>\n{\n { "Name", "Jane" },\n { "Age", 30 },\n { "Email", "jane@example.com" }\n};\ndata.Add(row2);\n\nbyte[] excelFile = ExcelExporter.Export(data);\nFile.WriteAllBytes("exported_data.xlsx", excelFile);\n\n\n这个示例将创建一个包含两行数据的Excel文件,并将其保存为名为exported_data.xlsx的文件。\n\n希望这个示例对你有帮助!
原文地址: https://www.cveoy.top/t/topic/puXK 著作权归作者所有。请勿转载和采集!