如何解决如何使用 C# 中的封闭 XML 动态地为列中的相似行值创建行跨度合并
我目前正在解决一个问题,我必须根据列中的相似行值进行合并,并且在导出 excel 原始数据时发布的不是合并的数据。 但我无法弄清楚这个操作的逻辑。 请帮我度过难关。 这是我的代码:
private void ExportDataTableToExcel(DataTable dt)
{
try
{
using (XLWorkbook wb = new XLWorkbook())
{
IXLWorksheet sheet = wb.Worksheets.Add(dt,"DSDP_REPORT");
int Ri = sheet.Rows().Count(),Cj = sheet.Columns().Count();
List<string> rnages = new List<string>();
for (int j = 1; j < Cj; j++)
{
int rowI = 0,rowC = 1;
for (int i = 1; i < Ri; i++)
{
string rowText = sheet.Cell(i,j).Value.ToString();
string nextRowText = sheet.Cell(i + 1,j).Value.ToString();
if (rowText == nextRowText)
{
rowC += 1;
if (rowI == 0) rowI = i;
continue;
}
if (rowC > 1)
{
IXLAddress addressI = sheet.Cell(rowI,j).Address;
IXLAddress addressCI = sheet.Cell(rowC,j).Address;
// sheet.Range(addressI.ToString() + ":" + addressCI.ToString()).Merge();
rnages.Add(addressI.ToString() + ":" + addressCI.ToString());
break;
}
}
}
rnages.ForEach((string range) =>
{
sheet.Range(range).Merge();
});
Response.Clear();
Response.Buffer = true;
Response.Charset = "";
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition","attachment;filename=DSDP_REPORT.xlsx");
using (MemoryStream MyMemoryStream = new MemoryStream())
{
wb.SaveAs(MyMemoryStream);
MyMemoryStream.WriteTo(Response.OutputStream);
Response.Flush();
Response.End();
}
}
}
catch (Exception ex)
{
throw (ex);
}
}
谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。