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导出来的数据是并列显示呢?因为导出的密码数量不一样,所有数据显示的样式有问题,怎么把这个样式弄成并列的啊?