NPOI导出EXCEL样式问题

zyGreen zyGreen 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
public void ExportXls(DataTable dt, DataTable d, string fileName)
{
HSSFWorkbook book = new HSSFWorkbook();
HSSFSheet sheet1 = book.CreateSheet("礼品册信息表");
HSSFRow head1 = sheet1.CreateRow(0);
HSSFCell cell1 = head1.CreateCell(0);
sheet1.AddMergedRegion(new Region(0, 0, 0, 5));
HSSFSheet sheet2 = book.CreateSheet("礼品册密码表");
HSSFRow head2 = sheet2.CreateRow(0);
HSSFCell cell2 = head2.CreateCell(0);
sheet2.AddMergedRegion(new Region(0, 0, 0, 5));
HSSFCellStyle style = book.CreateCellStyle();
cell1.SetCellValue("礼品册信息表");
cell2.SetCellValue("礼品册密码表");
HSSFRow row = sheet1.CreateRow(1);
row.CreateCell(0).SetCellValue("礼品册名称");
row.CreateCell(1).SetCellValue("礼品册编号");
row.CreateCell(2).SetCellValue("价格");
row.CreateCell(3).SetCellValue("有效时间");
row.CreateCell(4).SetCellValue("数量");
row.CreateCell(5).SetCellValue("礼品册介绍");
for (int i = 0; i < dt.Rows.Count; i++)
{
HSSFRow r = sheet1.CreateRow(i + 2);
r.CreateCell(0).SetCellValue(dt.Rows[i]["GiftBookName"].ToString());
r.CreateCell(1).SetCellValue(dt.Rows[i]["GiftBookNo"].ToString());
r.CreateCell(2).SetCellValue(dt.Rows[i]["Price"].ToString());
r.CreateCell(3).SetCellValue(dt.Rows[i]["ExpiredDate"].ToString());
r.CreateCell(4).SetCellValue(dt.Rows[i]["Amount"].ToString());
r.CreateCell(5).SetCellValue(dt.Rows[i]["Remark"].ToString());
}

HSSFRow row2 = sheet2.CreateRow(1);
for (int i = 0; i < dt.Rows.Count; i++)
{
row2.CreateCell(i).SetCellValue("编号:" + dt.Rows[i]["GiftBookNo"].ToString());


for (int j = 0; j < d.Rows.Count; j++)
{
HSSFRow r2 = null;
if (dt.Rows[i]["GiftBookNo"].ToString() == d.Rows[j]["GiftBookNo"].ToString())
{
if (sheet2.GetRow(j + 2) == null)
{
r2 = sheet2.CreateRow(j + 2);
}
else
{
r2 = sheet2.GetRow(j + 2);
}
r2.CreateCell(i).SetCellValue("0000:" + d.Rows[j]["Password"].ToString());

}
}
}

MemoryStream ms = new MemoryStream();
book.Write(ms);
Response.AddHeader("Content-Disposition", fileName);
Response.BinaryWrite(ms.ToArray());
book = null;
ms.Close();
ms.Dispose();

}


问题:
for (int j = 0; j < d.Rows.Count; j++)
{
HSSFRow r2 = null;
if (dt.Rows[i]["GiftBookNo"].ToString() == d.Rows[j]["GiftBookNo"].ToString())
{
if (sheet2.GetRow(j + 2) == null)
{
r2 = sheet2.CreateRow(j + 2);
}
else
{
r2 = sheet2.GetRow(j + 2);
}
r2.CreateCell(i).SetCellValue("0000:" + d.Rows[j]["Password"].ToString());

}
怎么去控制sheet2导出来的数据是并列显示呢?因为导出的密码数量不一样,所有数据显示的样式有问题,怎么把这个样式弄成并列的啊?



...全文
评论 8
收藏 已收藏
分享
返回顶部
zyGreen
.NET Framework 17,748 成员 24,324 内容