您的位置:首页 > 编程语言 > C#

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

2016-03-01 10:22 295 查看

引用NPOI

打开“工具”->“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();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: