/// <summary> /// 导出 /// </summary> /// <typeparam name="T">泛型</typeparam> /// <param name="excelBookInfo">需要写入Excel的WorkBook</param> /// <returns>返回HSSFWorkbook</returns> public static HSSFWorkbook Export <T>(this ExcelWorkBookInfo excelBookInfo) { GuardUtils.NotNull(excelBookInfo, nameof(excelBookInfo)); var book = ToHssfWorkbook <T>(excelBookInfo.Data, excelBookInfo.SheetName, excelBookInfo.ChoiseStr, excelBookInfo.IsShowSequenced ?? true); return(book); }
/// <summary> /// 生成ExcelWorkBookInfo /// </summary> /// <param name="dts">数据dataTable</param> /// <param name="sheetName">sheet名称</param> /// <param name="fileName">文件名</param> /// <param name="choiseStr">选择列的字符串</param> /// <returns>ExcelWorkBookInfo对象</returns> private static ExcelWorkBookInfo ConverteExcelWorkBook(List <DataTable> dts, string sheetName, string fileName, string choiseStr) { var sheetNames = new List <string>(); var choiseStrs = new List <string>(); for (int i = 0; i < dts.Count; i++) { if (i > 0) { sheetNames.Add(sheetName + (i + 1)); } else { sheetNames.Add(sheetName); } choiseStrs.Add(choiseStr); } var book = new ExcelWorkBookInfo() { FileName = fileName, SheetName = sheetNames.ToArray(), Data = dts, ChoiseStr = choiseStrs.ToArray() }; return(book); }
/// <summary> /// 文件字节 /// </summary> /// <typeparam name="T">泛型</typeparam> /// <param name="excelBookInfo">需要写入Excel的WorkBook</param> /// <returns>返回二进制数据</returns> public static byte[] ToBytes <T>(this ExcelWorkBookInfo excelBookInfo) { GuardUtils.NotNull(excelBookInfo, nameof(excelBookInfo)); var book = ToHssfWorkbook <T>(excelBookInfo.Data, excelBookInfo.SheetName, excelBookInfo.ChoiseStr, excelBookInfo.IsShowSequenced ?? true); //文件字节 using (var file = new MemoryStream()) { book.Write(file); return(file.ToArray()); } }
private void ReadExcelFileInfo(string path) { ExcelWorkBookInfo fileInfo = null; try { using (UsingExcel xls = new UsingExcel()) { fileInfo = xls.ReadExcelFileInfo(path); } } catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка чтения Excel"); } this.OpenedExcelFile = fileInfo; }
private void lblFileName_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { if (this.BWorker != null && BWorker.IsBusy) { MessageBox.Show("Дождитесь завершения операции.", "Программа в процессе..", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } string path = ExcelStatic.OpenExcelFileDialog(); if (!string.IsNullOrEmpty(path)) { ReadExcelFileInfo(path); } else { OpenedExcelFile = null; } }
public MainForm() { InitializeComponent(); OpenedExcelFile = null; }