您现在的位置是:首页 > 编程 > 

WeihanLi.poi 多 sheet 导出

2025-07-20 16:26:29
WeihanLi.poi 多 sheet 导出 WeihanLi.poi 多 sheet 导出Intro最近有位朋友在 Github 上提 issue 问,不同的集合类型怎么导出到同一个 excel 不同的 sheet 中,于是就想写篇文章分享一下,希望对需要的朋友有所帮助Sample废话不多说直接上代码吧,首先要导出到不同的 sheet 中需要自己准备一个 workbook 对象,再通过 I

WeihanLi.poi 多 sheet 导出

WeihanLi.poi 多 sheet 导出

Intro

最近有位朋友在 Github 上提 issue 问,不同的集合类型怎么导出到同一个 excel 不同的 sheet 中,于是就想写篇文章分享一下,希望对需要的朋友有所帮助

Sample

废话不多说直接上代码吧,首先要导出到不同的 sheet 中需要自己准备一个 workbook 对象,再通过 ImportData 来导入数据

代码语言:javascript代码运行次数:0运行复制
var collection1 = new[]
{
    new TestEntity1() { Id = 1, Title = "test1" },
    new TestEntity1() { Id = 2, Title = "test2" }
};
var collection2 = new[]
{
    new TestEntity2() { Id = 1, Title = "test1", Description = "description"},
    new TestEntity2() { Id = 2, Title = "test2" }
};
// 准备一个 workbook
var workbook = ExcelHelper.PrepareWorkbook(ExcelFormat.Xlsx);
// 导入 collection1 到第一个 sheet
workbook.ImportData(collection1);
// 导入 collection2 到第二个 sheet
workbook.ImportData(collection2, 1);
// 导出 workbook 到本地文件
workbook.WriteToFile("multi-sheets.xlsx");

最后通过 WriteToFile 去写入到文件或者自己将 workbook 导出到一个 stream 中。

如果需要自定义一些配置还是和之前是一样的,可以使用 attribute 的方式也可以使用 fluent API 的方式,如下:

代码语言:javascript代码运行次数:0运行复制
[Sheet(Sheetame = "TestSheet", SheetIndex = 0)]
file sealed class TestEntity1
{
    [Column("ID", Index = 0)]
    public int Id { get; set; }
    public string Title { get; set; } = string.Empty;
}

file sealed class TestEntity2
{
    public int Id { get; set; }
    public string Title { get; set; } = string.Empty;
    public string Description { get; set; }
}

Fluent API 配置如下:

代码语言:javascript代码运行次数:0运行复制
var settings = FluentSettings.For<TestEntity2>();
settings.HasSheetSetting(sheet => sheet.Sheetame = "TestEntity2", 1);
settings.Property(x => x.Id)
    .HasColumnIndex(0)
    .HasColumnOutputFormatter(v => v.ToString("#0000"))
    ;
settings.Property(x => x.Title)
    .HasColumnIndex(1)
    ;
settings.Property(x => x.Description)
    .HasColumnIndex(2)
    ;

导出结果如下:

sheet0

sheet1

References
  • .cs
  • .poi/issues/157
本文参与 腾讯云自媒体同步曝光计划,分享自。原始发表:2024-10-1,如有侵权请联系 cloudcommunity@tencent 删除数据title对象集合配置

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1129963.html

相关标签:无
上传时间: 2025-07-18 16:19:14
留言与评论(共有 12 条评论)
本站网友 淀山湖时代御湖
0秒前 发表
Title = "test1" }
本站网友 波多野结衣死亡
26分钟前 发表
Title = "test2" } }; // 准备一个 workbook var workbook = ExcelHelper.PrepareWorkbook(ExcelFormat.Xlsx); // 导入 collection1 到第一个 sheet workbook.ImportData(collection1); // 导入 collection2 到第二个 sheet workbook.ImportData(collection2
本站网友 投资公司注册资本
16分钟前 发表
SheetIndex = 0)] file sealed class TestEntity1 { [Column("ID"
本站网友 华西附二院
28分钟前 发表
1); settings.Property(x => x.Id) .HasColumnIndex(0) .HasColumnOutputFormatter(v => v.ToString("#0000")) ; settings.Property(x => x.Title) .HasColumnIndex(1) ; settings.Property(x => x.Description) .HasColumnIndex(2) ; 导出结果如下: sheet0 sheet1References.cs.poi/issues/157本文参与 腾讯云自媒体同步曝光计划
本站网友 guest用户
9分钟前 发表
原始发表:2024-10-1
本站网友 石化了
8分钟前 发表
如果需要自定义一些配置还是和之前是一样的
本站网友 去除眼部细纹的方法
27分钟前 发表
如下:代码语言:javascript代码运行次数:0运行复制[Sheet(Sheetame = "TestSheet"
本站网友 洛阳凯芙特酒店
22分钟前 发表
Title = "test1" }
本站网友 房屋贷款计算器最新2013
15分钟前 发表
WeihanLi.poi 多 sheet 导出 WeihanLi.poi 多 sheet 导出Intro最近有位朋友在 Github 上提 issue 问
本站网友 桐城租房网
9分钟前 发表
Title = "test1"
本站网友 112306
22分钟前 发表
Description = "description"}