c#中的报表简单操作(Excel)

来源:互联网 发布:adobe flash play mac 编辑:程序博客网 时间:2024/06/04 19:35

引用NPOI

打开“工具”->“NuGet程序包管理器”->”程序包管理器控制台”
打开NuGet控制台
(我用的VS2015)
在控制台输入
Install-Package NPOI
稍等片刻即可

创建报表辅助类

ExcelHelper.cs

class ExcelHelper    {        IWorkbook workBook;        string filePath;        FileStream fs;        public ExcelHelper(string filePath)        {            this.filePath = filePath;            fs = new FileStream(this.filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);            workBook = new XSSFWorkbook();        }        /// <summary>        /// DataTable转换为Excel文件        /// </summary>        /// <param name="table"></param>        /// <param name="sheetName"></param>        public void DataTableToExcel(DataTable table, string sheetName)        {            ISheet sheet = workBook.CreateSheet(sheetName);            //列名            IRow header = sheet.CreateRow(0);            for (int j = 0; j < table.Columns.Count; ++j)            {                header.CreateCell(j).SetCellValue(table.Columns[j].ColumnName);            }            //添加数据            int count = 1;            for (int i = 0; i < table.Rows.Count; ++i)            {                if (table.Rows == null || table.Rows.Count < 1)                    break;                IRow row = sheet.CreateRow(count++);                for (int j = 0; j < table.Columns.Count; ++j)                {                    double res = 0;                    //判断是否为Double                    if (Double.TryParse(table.Rows[i][j].ToString(), out res))                    {                        row.CreateCell(j).SetCellValue(res);                    }                    else                    {                        row.CreateCell(j).SetCellValue(table.Rows[i][j].ToString());                    }                }            }        }        //写入文件        public void wirte()        {            workBook.Write(fs);        }    }

ExcelHelper的主要功能就是将DataTable写入到Excel的Sheet当中,可以创建多个Sheet,数据全部写完以后再Write。

调用

ExcelHelper eh = new ExcelHelper(filePath);eh.DataTableToExcel(dt1, sheetName1);eh.DataTableToExcel(dt2, sheetName2);eh.DataTableToExcel(dt3, sheetName3);...eh.write();
0 0
原创粉丝点击