发布:2023/3/24 14:44:28作者:管理员 来源:本站 浏览次数:702
这里用到了NPOI这个第三方插件实现对Excel数据的写入和读取
写入
<span style="font-family:Microsoft YaHei;font-size:18px;">List<person> list = new List<person>()
{
new person (){Name ="lun",Age =22,Email ="lun@Yahoo.com"},
new person (){Name ="guo",Age =22,Email ="guo@Yahoo.com"},
new person (){Name ="istari",Age =22,Email ="istari@Yahoo.com"},
};
//把该list集合中的数据导出到Excel中
//1.创建工作簿对象
IWorkbook wkbook = new HSSFWorkbook();
//2.在该工作簿中创建工作表
ISheet sheet = wkbook.CreateSheet("lun");
//向该工作表中插入行和单元格
for (int i = 0; i < list.Count; i++)
{
//在sheet中插入一行
IRow row = sheet.CreateRow(i);
//在该行中创建单元格
row.CreateCell(0).SetCellValue(list[i].Name);
row.CreateCell(1).SetCellValue(list[i].Age);
row.CreateCell(2).SetCellValue(list[i].Email);
}
//3.写入,把内存的workbook对象写入到磁盘上
using (FileStream fsWrite = File.OpenWrite("xx.xls"))
{
wkbook.Write(fsWrite);
}
MessageBox.Show("写入OK");</span>
对于上面的代码,这里我用的是1.2.5.0版本的NPOI所以代码中用IWorkbook就可以创建工作博对象,但是对于再早一点的版本没有IWorkbook这个接口,只有workbook这个类,注意这个类继承了IDisposable这个接口,所以要用using来关闭资源。相比1.2.5.0版本的就麻烦点。所以建议大家用比较新的版本的NPOI。
读取
<span style="font-family:Microsoft YaHei;font-size:18px;">//1.创建一个workbook对象
//2.创建一个文件流
using (FileStream fsRead = File.OpenRead("bolun1.xls"))
{
IWorkbook workbook = new HSSFWorkbook(fsRead);
//遍历workbook中的每一个sheet
for (int i = 0; i < workbook.NumberOfSheets ; i++)
{
//获取每个工作表对象
ISheet sheet = workbook.GetSheetAt(i);
Console.WriteLine("==========={0}===========",sheet .SheetName );
//获取每个工作表中的行
for (int r = 0; r <= sheet.LastRowNum; r++)
{
//获取工作表中的每一行
IRow currentRow = sheet.GetRow(r);
//遍历当前行中的每个单元格
for (int c = 0; c < currentRow .LastCellNum; c++)
{
//获取每个单元格
ICell cell = currentRow.GetCell(c);
//把每个单元格中的内容都当作字符串来处理
string val=cell.ToString();
//cell.NumericCellValue();
//cell.BooleanCellValue();
Console.Write("{0} | ",val);
}
Console.WriteLine();
}
}
</span>
读取的效果
© Copyright 2014 - 2024 柏港建站平台 ejk5.com. 渝ICP备16000791号-4