| | |
| | | using HMI.Core; |
| | | using HMI.Core.Util; |
| | | using NPOI.HSSF.UserModel; |
| | | using NPOI.SS.Formula.Functions; |
| | | using NPOI.SS.UserModel; |
| | | using NPOI.XSSF.UserModel; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Data; |
| | | using System.IO; |
| | | using System.Linq; |
| | | using System.Reflection; |
| | |
| | | } |
| | | } |
| | | |
| | | public static void ExportExcel<T>(string targetPath, DataTable table) |
| | | { |
| | | Type type = typeof(T); |
| | | var properties = PropertyHelper.GetAtterProperty<T, ExcelColumnAttribute>(out var attrs); |
| | | if (properties == null || properties.Count <= 0) |
| | | { |
| | | throw new Exception("No Attribute"); |
| | | } |
| | | IWorkbook workbook = null; |
| | | if (targetPath.EndsWith(".xlsx")) |
| | | { |
| | | workbook = new XSSFWorkbook(); |
| | | } |
| | | else if (targetPath.EndsWith(".xls")) |
| | | { |
| | | workbook = new HSSFWorkbook(); |
| | | } |
| | | workbook.CreateSheet("sheet1");////新建一个工作表 |
| | | ISheet SheetOne = workbook.GetSheet("Sheet1"); |
| | | IRow row1 = SheetOne.CreateRow(0); |
| | | for (int i = 0; i < properties.Count; i++) |
| | | { |
| | | row1.CreateCell(i).SetCellValue(LangUtil.Get((attrs[i]).Name)); |
| | | } |
| | | |
| | | for (int i = 0; i < table.Rows.Count; i++) |
| | | { |
| | | IRow rowTemp = SheetOne.CreateRow(i + 1); |
| | | for (int j = 0; j < properties.Count; j++) |
| | | { |
| | | var attr = attrs[j]; |
| | | object obj = attr.IgnoreExport ? "" : table.Rows[i][properties[j].Name]; |
| | | string value = obj?.ToString(); |
| | | if (obj is DateTime time) |
| | | { |
| | | value = time.ToString("yyyy-MM-dd HH:mm:ss"); |
| | | } |
| | | rowTemp.CreateCell(j).SetCellValue(value); |
| | | } |
| | | } |
| | | |
| | | using (FileStream fs = new FileStream(targetPath, FileMode.OpenOrCreate)) |
| | | { |
| | | workbook.Write(fs); |
| | | } |
| | | } |
| | | |
| | | public static void ExportExcel(string targetPath, List<string[]> rows) |
| | | { |
| | | IWorkbook workbook = null; |
| | | if (targetPath.EndsWith(".xlsx")) |
| | | { |
| | | workbook = new XSSFWorkbook(); |
| | | } |
| | | else if (targetPath.EndsWith(".xls")) |
| | | { |
| | | workbook = new HSSFWorkbook(); |
| | | } |
| | | workbook.CreateSheet("sheet1");////新建一个工作表 |
| | | ISheet SheetOne = workbook.GetSheet("sheet1"); |
| | | |
| | | |
| | | for (int i = 0; i < rows.Count; i++) |
| | | { |
| | | IRow rowTemp = SheetOne.CreateRow(i); |
| | | for (int j = 0; j < rows[i].Length; j++) |
| | | { |
| | | rowTemp.CreateCell(j).SetCellValue(rows[i][j]); |
| | | } |
| | | } |
| | | |
| | | using (FileStream fs = new FileStream(targetPath, FileMode.OpenOrCreate)) |
| | | { |
| | | workbook.Write(fs); |
| | | } |
| | | } |
| | | |
| | | |
| | | public static List<T> ReadFromExcel<T>(string sourcePath) |
| | | { |