c# - 使用 “Openxml writer” 合并 Excel 中的单元格

标签 c# openxml-sdk

我想通过使用 SAX 方法和 openxmlwriter 来合并 Excel 中的单元格。我已经使用这些方法代替 DOM 方法,将数千条记录写入 excel。

最佳答案

我正在分享一段代码,可以帮助其他人编写代码以使用 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();

关于c# - 使用 “Openxml writer” 合并 Excel 中的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41361473/

相关文章:

c# - 在请求上使用反射使w3wp.exe进程崩溃

c# - 设置 IDictionary 的所有值

c# - 以编程方式生成的 PowerPoint 演示文稿破坏了 PowerPoint 2013

c# - 使用 OpenXML 在 Word 2010 和 2003 中嵌入 Excel 图形

c# - 使用 OpenXML for Word 搜索和添加评论

c# - 你如何在 LINQ TO SQL 中按多列分组?

javascript - iOS 应用程序扩展 javascript 参数在 CompleteRequest 后未定义

c# - JsonConvert 序列化/反序列化锯齿状数组并启用 TypeNameHandling

c# - OpenXML 编写器的使用使图形不可读

c# - 在 open xml c# 中为字符范围添加字符间距