C# NPOI 导出excel

本文章针对新手哦~

直接看代码:

 #region 从DataTable读取内容来创建Workbook对象:
        public static MemoryStream RenderToExcel(DataTable table)
        {
            MemoryStream ms = new MemoryStream();
            using (table)
            {
                IWorkbook workbook = new HSSFWorkbook();
                ISheet sheet = workbook.CreateSheet();
                {
                    IRow headerRow = sheet.CreateRow(0);

                    foreach (DataColumn column in table.Columns)
                        headerRow.CreateCell(column.Ordinal).SetCellValue(column.Caption);

                    int rowIndex = 1;

                    foreach (DataRow row in table.Rows)
                    {
                        IRow dataRow = sheet.CreateRow(rowIndex);

                        foreach (DataColumn column in table.Columns)
                        {
                            dataRow.CreateCell(column.Ordinal).SetCellValue(row[column].ToString());
                        }

                        rowIndex++;
                    }

                    workbook.Write(ms);
                    ms.Flush();
                    ms.Position = 0;
                }
                return ms;
            }
        }


        #endregion

        #region  保存Excel
        static void SaveToFile(MemoryStream ms, string fileName)
        {
            using (FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write))
            {
                byte[] data = ms.ToArray();
                fs.Write(data, 0, data.Length);
                fs.Flush();
                data = null;
            }
        }
        #endregion

        //导出
        private void exportBtn_Click(object sender, EventArgs e)
        {
            DataTable dt = (DataTable)gridControl1.DataSource;
            MemoryStream ms=  RenderToExcel(dt);
            SaveFileDialog sf = new SaveFileDialog();
            string excelName; //excel 名称
            sf.Filter = "Excel文件(*.xls,xlsx)|*.xls;*.xlsx";
            if (sf.ShowDialog() == DialogResult.OK)
            {
               excelName= sf.FileName;
               SaveToFile(ms, excelName);
            }        
        }

阅读更多

扫码向博主提问

向大佬低头

非学,无以致疑;非问,无以广识
  • 擅长领域:
  • C#Winform
  • Java
  • js
去开通我的Chat快问
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭