使用"Openxml writer"在Excel中合并单元格 [英] Merge cells in Excel using “Openxml writer”
本文介绍了使用"Openxml writer"在Excel中合并单元格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想通过使用带有openxmlwriter的SAX方法在excel中合并单元格.我使用这些方法而不是DOM方法来编写成千上万的记录以达到卓越效果.
I want to merge cells in excel by using SAX approach with openxmlwriter. I have used these approach instead of DOM approach is to write thousands of records to excel.
推荐答案
我正在共享一段代码,这可以帮助其他人使用OpenXmlWriter(OpenXml SAX)编写代码以合并单元格
I am sharing piece of code which may help others to write code to merge cells using OpenXmlWriter (OpenXml SAX)
// OpenXMLWriter to write large data to excel to avoid System.OutOfMemoryException
OpenXmlWriter oxw = OpenXmlWriter.Create(wsPart);
oxw.WriteStartElement(new Worksheet());
// Excel column style
oxw.WriteStartElement(new Columns());
foreach (var item in gridHeaderList)
{
oxw.WriteStartElement(new Column(), new List<OpenXmlAttribute>()
{
new OpenXmlAttribute("min", null, (item.columnIndex + 1).ToString()),
new OpenXmlAttribute("max", null, (item.columnIndex + 1).ToString()),
new OpenXmlAttribute("width", null, item.columnWidth.ToString())
});
oxw.WriteEndElement();
}
oxw.WriteEndElement();
// End of Columns element node
// Sheet data node
oxw.WriteStartElement(new SheetData());
oxw.WriteStartElement(new Row());
foreach (var item in dataList)
{
oxw.WriteElement(new Cell()
{
CellValue = new CellValue(item.Value),
DataType = CellValues.String,
StyleIndex = item.styleIndex
});
}
oxw.WriteEndElement();
oxw.WriteEndElement();
// End of sheetdata element node
// Start of MergeCells element node
// NOTE: Make sure initialize "A6:D6" range cells
oxw.WriteStartElement(new MergeCells());
oxw.WriteElement(new MergeCell() { Reference = new StringValue("A6:D6") });
oxw.WriteEndElement();
// End of MergeCells element node
oxw.WriteEndElement();
// End of worksheet element node
oxw.Close();
这篇关于使用"Openxml writer"在Excel中合并单元格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文