MVC 實現資料匯入Excel,並在客戶端下載。
阿新 • • 發佈:2019-01-08
1 .在control實現資料匯出到excel
2 在view 中實現檔案下載
匯出excel方法 需要引入
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using NPOI.HSSF.UserModel;
public MemoryStream DataTableToExcel(DataTable data, string sheetName, bool isColumnWritten) { int i = 0; int j = 0; int count = 0; ISheet sheet = null; MemoryStream ms = new MemoryStream(); fs = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite); if (fileName.IndexOf(".xlsx") > 0) // 2007版本 workbook = new XSSFWorkbook(); else if (fileName.IndexOf(".xls") > 0) // 2003版本 workbook = new HSSFWorkbook(); try { if (workbook != null) { sheet = workbook.CreateSheet(sheetName); } else { return ms; } if (isColumnWritten == true) //寫入DataTable的列名 { IRow row = sheet.CreateRow(0); for (j = 0; j < data.Columns.Count; ++j) { row.CreateCell(j).SetCellValue(data.Columns[j].ColumnName); } count = 1; } else { count = 0; } for (i = 0; i < data.Rows.Count; ++i) { IRow row = sheet.CreateRow(count); for (j = 0; j < data.Columns.Count; ++j) { row.CreateCell(j).SetCellValue(data.Rows[i][j].ToString()); } ++count; } workbook.Write(fs); //寫入到excel fs.Close(); byte[] data1 = File.ReadAllBytes(fileName); MemoryStream ms1 = new MemoryStream(data1); return ms1; } catch (Exception ex) { Console.WriteLine("Exception: " + ex.Message); return null; } }