NOPI 导出 Excel 2007
2024-10-19 14:43:34
代码:
public static void ThisTo<T>( List<T> source, string[] colums, Func<T, object[]> action, string savePath, string sheetName = "")
{
XSSFWorkbook xssfworkbook = new XSSFWorkbook();
ISheet sheet = xssfworkbook.CreateSheet(sheetName);
IRow row = sheet.CreateRow();
for (int i = ; i < colums.Length; i++)
{
ICell cell = row.CreateCell(i);
cell.SetCellValue(colums[i]);
}
for (int i = ; i < source.Count; i++)
{
IRow row1 = sheet.CreateRow(i + );
int colIndex = ;
row1.Cells.AddRange(action(source[i]).Select(p =>
{
var colCell = row1.CreateCell(colIndex,CellType.String);
colCell.SetCellValue(p.ToString());
colIndex++;
return colCell;
}));
}
MemoryStream stream = new MemoryStream();
xssfworkbook.Write(stream);
var buf = stream.ToArray();
using (FileStream fs = new FileStream(savePath, FileMode.Create, FileAccess.Write))
{
fs.Write(buf, , buf.Length);
fs.Flush();
}
}
调用:
ThisTo<NAMES>(a, new string[] { "Name","Gender"}, p =>
{
return new object[] {
p.Name,
p.Gender
};
}, @"D:\ABCD.xlsx", "");
说明:
方法中第一个参数为需导出数据,第二个参数为Excel列名,第三个为导出时数据排布顺序(与第二个参数相对应),第四参数为保存地址,第五参数为sheet名,
调用参照上述调用方法。
最新文章
- Linux Svn 安装过程及配置
- PPT文档页数显示的增加和更新
- js中的text(),html() ,val()的区别
- 移动平台自动化测试从零开始-MonkeyRunner工具使用 (第二节)
- 20135214万子惠 (2)——-Java面向对象程序设计
- 为EditText设置OnTouchListener事件监听
- input text 不可编辑的解决办法
- web第一节课 sql 数据库连接 查询
- Raw qcow qcow2 vhd-vpc虚拟磁盘格式间相互转换
- WebService之CXF注解报错(二)
- AtomicReference
- 查看python中模块的所有方法
- PackageManagerService 学习记录 基于7.1.1源码
- 《Linux内核设计与实现》第八周读书笔记——第四章 进程调度
- 课程二(Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization),第二周(Optimization algorithms) —— 2.Programming assignments:Optimization
- Jemeter编写脚本(五类常见请求)
- E3-1260L (8M Cache, 2.40 GHz) E3-1265L v2 (8M Cache, 2.50 GHz)
- (一)github之基础概念篇
- FZU 2082(过路费)
- linux 常用命令总结(二)