使用NPOI和委托做EXCEL导出
2013-04-18 20:55
369 查看
首先,在用NPOI导出时,学习了邀月这篇文章NPOI根据Excel模板生成原生的Excel文件实例,在这里先行谢过了。
本篇文章在邀月的基本上,做了一些小的改动,加上委托的机制。因为在做导出时,加载模板,下载为EXCEL的代码相同,但是在设置EXCEL模板中的值时有很大的不同。所以以了一些小的改动。
改动后的主要类文件如下:
ExcelHelper:
View Code
备注:
ExcelHelper类:负责打开模板,调用传来的方法设置值,输出流。
PrintManager类:负责调用ExcelHelper然后到业务模块取数据,然后将业务数据填充到HSSFSheet中去。
效果
EXCEL模板:
导出的EXCEL:
DEMO下载:NopiTest.zip
本篇文章在邀月的基本上,做了一些小的改动,加上委托的机制。因为在做导出时,加载模板,下载为EXCEL的代码相同,但是在设置EXCEL模板中的值时有很大的不同。所以以了一些小的改动。
改动后的主要类文件如下:
ExcelHelper:
View Code
public class PrintManager { public void PrintPurchase() { ExcelHelper helper = new ExcelHelper("PurchaseOrder.xls", "PurchaseOrder_C000001.xls"); helper.ExportDataToExcel(SetPurchaseOrder); } private void SetPurchaseOrder(HSSFSheet sheet) { HSSFRow row = null; HSSFCell cell = null; row = sheet.GetRow(2); cell = row.GetCell(1); cell.SetCellValue("C0000001"); cell = row.GetCell(7); cell.SetCellValue("2013-04-18"); DataTable itemDT = PrepareItemDTForTest(); SetDataTableValue(sheet, 7, 0, itemDT); row = sheet.GetRow(14); cell = row.GetCell(0); cell.SetCellValue("NOKIA"); cell = row.GetCell(6); cell.SetCellValue("CMCC"); } public void SetDataTableValue(HSSFSheet sheet, int rowIndex, int columnIndex,DataTable dt) { HSSFRow row = null; HSSFCell cell = null; foreach (DataRow dataRow in dt.Rows) { row = sheet.GetRow(rowIndex); columnIndex = 0; foreach (DataColumn column in dt.Columns) { cell = row.GetCell(columnIndex); string drValue = dataRow[column].ToString(); switch (column.DataType.ToString()) { case "System.String": cell.SetCellValue(drValue); break; case "System.DateTime": DateTime dateV; DateTime.TryParse(drValue, out dateV); cell.SetCellValue(dateV); break; case "System.Boolean": bool boolV = false; bool.TryParse(drValue, out boolV); cell.SetCellValue(boolV); break; case "System.Int16": case "System.Int32": case "System.Int64": case "System.Byte": int intV = 0; int.TryParse(drValue, out intV); cell.SetCellValue(intV); break; case "System.Decimal": case "System.Double": double doubV = 0; double.TryParse(drValue, out doubV); cell.SetCellValue(doubV); break; case "System.DBNull": cell.SetCellValue(""); break; default: cell.SetCellValue(""); break; } columnIndex++; } rowIndex++; } } private DataTable PrepareItemDTForTest() { DataTable itemDT = new DataTable(); itemDT.Columns.Add("Name"); itemDT.Columns.Add("Qty", Type.GetType("System.Decimal")); itemDT.Columns.Add("UnitPrice", Type.GetType("System.Decimal")); DataRow newRow = itemDT.NewRow(); newRow[0] = "820"; newRow[1] = "100"; newRow[2] = "3000"; itemDT.Rows.Add(newRow); DataRow newRow2 = itemDT.NewRow(); newRow2[0] = "920"; newRow2[1] = "100"; newRow2[2] = "4000"; itemDT.Rows.Add(newRow2); return itemDT; } }
备注:
ExcelHelper类:负责打开模板,调用传来的方法设置值,输出流。
PrintManager类:负责调用ExcelHelper然后到业务模块取数据,然后将业务数据填充到HSSFSheet中去。
效果
EXCEL模板:
导出的EXCEL:
DEMO下载:NopiTest.zip
相关文章推荐
- .NET使用NPOI组件将数据导出Excel
- 【推荐】.NET使用NPOI组件将数据导出Excel
- 使用NPOI导出DataTable到Excel
- [Cyan之旅]使用NPOI实现Excel的导入导出,踩坑若干.
- .net 使用NPOI或MyXls把DataTable导出到Excel
- ASP.NET- 使用NPOI导入导出标准Excel
- 使用NPOI 转换Excel TO HTML (导出格式不如原生Excel好看)
- NPOI 2.1.1 系列(1) 使用NPOI读取 Excel文档 ;NpoiExcelHelper 导入导出 2003格式 2007格式的 Excel; Npoi 导出 xlsx 格式
- 使用NPOI导入导出标准Excel
- 使用NPOI导入导出标准Excel
- c# asp.net NPOI 使用本地模板导出excel
- 使用NPOI 导入导出Excel的类
- 在Winform中使用NPOI第三方组件导出Excel
- 【推荐】.NET(webform,MVC)使用NPOI组件将数据导出、导入Excel。 Aspose.Cell 控件报表
- ASP.NET 中 NPOI & LinqToSql 使用模板 导出 Excel
- NPOI导入导出EXCEL通用类,可直接使用在WinForm项目中
- .NET使用NPOI组件将数据导出Excel
- 如何使用NPOI 导出到excel和导入excel到数据库
- ASP.Net使用NPOI导出Excel
- ASP.NET使用NPOI加载Excel模板并导出下载