NPOI导出EXCEL样式问题
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导出来的数据是并列显示呢?因为导出的密码数量不一样,所有数据显示的样式有问题,怎么把这个样式弄成并列的啊?
{
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导出来的数据是并列显示呢?因为导出的密码数量不一样,所有数据显示的样式有问题,怎么把这个样式弄成并列的啊?
...全文
相关推荐
c# NPOI 导入和导出EXCEL
NPOI是一个开源库,它允许C#开发者处理Microsoft Office文件,包括Excel(.xlsx和.xls格式)。本篇文章将深入探讨如何使用NPOI库来实现Excel的导入、显示和导出功能。
NPOI导出excel
- 自定义样式:NPOI允许自定义单元格样式,如字体、颜色、边框等,可以根据需求美化导出的Excel文件。**5.
C#导出Excel复杂表头解决方案
描述中的"**优化了导出复杂表头增加样式过慢的问题**"指出了一个常见的性能瓶颈:当表头样式复杂时,设置这些样式可能会占用大量计算资源,导致程序响应变慢。
ASP.NET导出EXCEL超高兼容
**样式和格式化**:NPOI允许我们设置单元格的样式,包括字体、颜色、对齐方式、边框等,以确保导出的Excel文件具有良好的可读性和视觉效果。5.
Npoi导出Excel
Npoi是一个流行的开源库,主要用于.NET开发者,它允许程序生成和修改Microsoft Office文档,包括Excel。在这个场景下,"Npoi导出Excel"涉及到的关键知识点包括:1.


.NET Framework
