c# - OpenXML SDK - Excel 更改单元格格式 - C#

标签 c# openxml

我有一个 C# 网络应用程序。
并且正在使用 xlsx 模板来创建文档。 xlsx 的格式相当复杂,因此我选择了模板路径而不是从头开始创建。
在单元格 x2 中,大多数数据以百分比形式出现,但在某些情况下它会是一个数量。但是当它达到百分比时,我似乎无法更改该单元格的格式。模板以百分比格式保存在该单元格中。设置单元格值的代码如下,适用于其他以货币格式保存的单元格。我试图根据另一个具有相同格式的单元格中的代码将单元格样式索引设置为 103U。

如何更改单元格 x2 的格式?任何帮助将不胜感激。提前致谢。`

public void setCellValueNum(WorksheetPart ws, int row, int col, Double newVal)
    {
        Cell cl = getCell(ws.Worksheet, getColLetter(col), row);
        cl.CellValue = new CellValue(newVal.ToString());
        cl.CellReference = getColLetter(col) + row.ToString();
        cl.DataType =
            new EnumValue<CellValues>(CellValues.Number);

        //cl.StyleIndex = (UInt32Value)103U;

       }

最佳答案

请参阅编号格式其样式。 Add style to Excel in openxml .

根据 Reading dates from OpenXml Excel files , 内置 ID 值小于 164 的格式。您可以在那里找到格式列表。

这是一个例子:Applying % number format to a cell value using OpenXMl .只需将格式更改为类似

nf2decimal.FormatCode = StringValue.FromString("0.0");

您需要添加引用单元格的样式。这是一个例子:https://blogs.msdn.microsoft.com/chrisquon/2009/11/30/stylizing-your-excel-worksheets-with-open-xml-2-0/

openXML 安装了一个工具来生成 c# 代码以创建选定的 xlsx ( https://tech.trailmax.info/2014/04/open-xml-sdk-tool-to-analyse-documents-and-generated-c-code/ )。

关于c# - OpenXML SDK - Excel 更改单元格格式 - C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49438759/

相关文章:

javascript - 在 asp.net 中捆绑

c# - 通过样式 block 解析 Open XML 文档

c# - 向 Word 文档中的现有表格添加一行(打开 XML)

c# - 将一种类型转换为另一种类型

c# - 如何重新分配一个自动递增的主键值?

c# - 有没有办法用 UTC 检查它是否是 DST(夏令时)?

c# - 从右到左打开 XML Sheetview

ms-word - 如何使用 Open XML SDK 获取 MS Word 总页数?

powerpoint - 使用Open Office SDK 2.0将PowerPoint 2007保存为PowerPoint 2003

c# - 如何禁用我的 ASP.NET 应用程序的某些 API