DataTableToExcel(DataTable dtSource,  strHeaderText, =  (strFileName.IndexOf() > ) 
                suffix =  (strFileName.IndexOf() > ) 
                suffix = (MemoryStream ms = (FileStream fs = [] data = 
         
         
         
         
           DataGridViewToExcel(DataGridView myDgv,  strHeaderText, =  (strFileName.IndexOf() > ) 
                suffix =  (strFileName.IndexOf() > ) 
                suffix = (MemoryStream ms = (FileStream fs = [] data = 
         
         
         
          DataTable ExcelToDataTable(= =  (FileStream file =  New_NPOI                 (strFileName.IndexOf() > ) 
                    workbook =   (strFileName.IndexOf() > ) 
                    workbook =  Old_NPOI= = workbook.GetSheetAt(== sheet.GetRow( cellCount = ( j = ; j < cellCount; j++= ( i = (sheet.FirstRowNum + ); i <= sheet.LastRowNum; i++== ( j = row.FirstCellNum; j < cellCount; j++ (row.GetCell(j) != = private         
         
         
         
         
          MemoryStream DataTableToExcelStream(DataTable dtSource, = = = =  New_NPOI             (suffix ===   (suffix ===  Old_NPOI= ==== dataFormat.GetFormat(
            [] arrColWidth =   (DataColumn item = Encoding.GetEncoding( ( i = ; i < dtSource.Rows.Count; i++ ( j = ; j < dtSource.Columns.Count; j++ intTemp = Encoding.GetEncoding( (intTemp >= rowIndex =  (DataRow row  新建表,填充表头,填充列头,样式                 (rowIndex ==  || rowIndex ==  (rowIndex != = 表头及样式= sheet.CreateRow(= =
                        IFont font ==  New_NPOI=  Old_NPOI= ).CellStyle =

                     列头及样式= sheet.CreateRow(=
                        IFont font ==  New_NPOI=  Old_NPOI=  (DataColumn column == 

                 填充内容= (DataColumn column = drValue = :
                             (drValue.Length > = drValue.Substring(,  := cellStyle;
                             :
                             boolV = .TryParse(drValue,  :
                            intV = .TryParse(drValue,  :
                          doubV = .TryParse(drValue,  :
                            newCell.SetCellValue(++MemoryStream ms =  New_NPOI
             
         
         
         
         
          MemoryStream DataGridViewToExcelStream(DataGridView myDgv, = = = =  New_NPOI             (suffix ===   (suffix ===  Old_NPOI= ==== dataFormat.GetFormat(
            [] arrColWidth =   (DataGridViewColumn item = Encoding.GetEncoding( ( i = ; i < myDgv.Rows.Count; i++ ( j = ; j < myDgv.Columns.Count; j++ intTemp = Encoding.GetEncoding( (intTemp >= rowIndex =  (DataGridViewRow row  新建表,填充表头,填充列头,样式                 (rowIndex ==  || rowIndex ==  (rowIndex != = 表头及样式= sheet.CreateRow(= =
                        IFont font ==  New_NPOI=  Old_NPOI= ).CellStyle =


                     列头及样式= sheet.CreateRow(=
                        IFont font ==  New_NPOI=  Old_NPOI=  (DataGridViewColumn column == 

                 填充内容= (row.Index >  (DataGridViewColumn column = drValue = myDgv[column.Index, row.Index -  : := cellStyle;
                                 :
                                 boolV = .TryParse(drValue,  :
                                intV = .TryParse(drValue,  :
                              doubV = .TryParse(drValue,  :
                                newCell.SetCellValue(--++MemoryStream ms =  New_NPOI

注,测试NPOI版本为:2.5.1.0,包含的文件及依赖:

NPOI Excel Helper_Excel NPOI Excel Helper_Excel_02