2020年10月14日星期三

NPOI Excel Helper

 /// <summary> /// NPOIExcel帮助类 /// </summary> public class NPOIExcelHelper {  /// <summary>  /// DataTable导出到Excel文件  /// </summary>  /// <param name="dtSource">源DataTable</param>  /// <param name="strHeaderText">表头文本</param>  /// <param name="strFileName">保存位置</param>  public static void DataTableToExcel(DataTable dtSource, string strHeaderText, string strFileName)  {   ExcelFileSuffixType suffix = default(ExcelFileSuffixType);   if (strFileName.IndexOf(".xlsx") > 0) // 2007版本    suffix = ExcelFileSuffixType.xlsx;   else if (strFileName.IndexOf(".xls") > 0) // 2003版本    suffix = ExcelFileSuffixType.xls;   using (MemoryStream ms = DataTableToExcelStream(dtSource, strHeaderText, suffix))   {    using (FileStream fs = new FileStream(strFileName, FileMode.Create, FileAccess.Write))    {     byte[] data = ms.ToArray();     fs.Write(data, 0, data.Length);     fs.Flush();    }   }  }  /// <summary>  /// DataGridView导出到Excel文件  /// </summary>  /// <param name="dtSource">源DataTGridview</param>  /// <param name="strHeaderText">表头文本</param>  /// <param name="strFileName">保存位置</param>  public static void DataGridViewToExcel(DataGridView myDgv, string strHeaderText, string strFileName)  {   ExcelFileSuffixType suffix = default(ExcelFileSuffixType);   if (strFileName.IndexOf(".xlsx") > 0) // 2007版本    suffix = ExcelFileSuffixType.xlsx;   else if (strFileName.IndexOf(".xls") > 0) // 2003版本    suffix = ExcelFileSuffixType.xls;   using (MemoryStream ms = DataGridViewToExcelStream(myDgv, strHeaderText, suffix))   {    using (FileStream fs = new FileStream(strFileName, FileMode.Create, FileAccess.Write))    {     byte[] data = ms.ToArray();     fs.Write(data, 0, data.Length);     fs.Flush();    }   }  }  /// <summary>  /// 将excel文件导入至DataTable  /// </summary>  /// <param name="strFileName">excel文件全路径</param>  /// <returns></returns>  public static DataTable ExcelToDataTable(string strFileName)  {   DataTable dt = new DataTable();   IWorkbook workbook = null;   using (FileStream file = new FileStream(strFileName, FileMode.Open, FileAccess.Read))   {#if New_NPOI    if (strFileName.IndexOf(".xlsx") > 0) // 2007版本     workbook = new XSSFWorkbook(file);    else if (strFileName.IndexOf(".xls") > 0) // 2003版本     workbook = new HSSFWorkbook(file);

没有评论:

发表评论

注意:只有此博客的成员才能发布评论。