首页 > 解决方案 > Epplus 是否支持通过 office open xml 设置工作表数据/单元格值?

问题描述

我的问题 :

如果有一个带有 office open xml 的工作表数据格式,如下所示:

        <sheetData>
            <row r="1" spans="1:3" x14ac:dyDescent="0.25">
                <c r="A1" t="s">
                    <v>0</v>
                </c>
                <c r="B1" t="s">
                    <v>1</v>
                </c>
                <c r="C1" t="s">
                    <v>2</v>
                </c>
            </row>
            <row r="2" spans="1:3" x14ac:dyDescent="0.25">
                <c r="A2">
                    <v>1</v>
                </c>
                <c r="B2">
                    <v>2</v>
                </c>
                <c r="C2">
                    <v>3</v>
                </c>
            </row>
            <row r="3" spans="1:3" x14ac:dyDescent="0.25">
                <c r="A3">
                    <v>4</v>
                </c>
                <c r="B3">
                    <v>5</v>
                </c>
                <c r="C3">
                    <v>6</v>
                </c>
            </row>
            <row r="4" spans="1:3" x14ac:dyDescent="0.25">
                <c r="A4">
                    <v>7</v>
                </c>
                <c r="B4">
                    <v>8</v>
                </c>
                <c r="C4">
                    <v>9</v>
                </c>
            </row>
        </sheetData>

如何为 epplus 设置此 xml 以更改单元格值?

我尝试了什么:

搜索 epplus 并且只有Cells[IndexName].Value = "xx"api。

我的期望:

一些epplus方法,如:

ws.SetSheetDataXml = xml;

标签: c#epplus

解决方案


您总是可以Worksheet像这样访问和操作 XML:

var fi = new FileInfo(@"c:\temp\SomeExcelFile.xlsx");

using (var pck = new ExcelPackage(fi))
{
    var workbook = pck.Workbook;
    var ws = workbook.Worksheets.Add("Sheet1");
    ws.Cells.LoadFromDataTable(datatable, true);
    var xdoc = ws.WorksheetXml;

    ...
}

显然,您必须小心处理它,这样 Epplus 在您尝试保存它时不会感到不安。一般来说,直接弄乱 XML 是 Epplus 做不到的最后手段。这里有一些例子:

如何关闭 EPPlus 中 Excel 应用程序对象的后台错误检查?

将数据栏修改为实心填充时,如何阻止其他条件格式消失?

使用 EPPlus 将图表导出到 Excel 时出现 X 轴标签格式问题


推荐阅读