【问题标题】:OpenXML SDK - Excel Change Cell Format - C#OpenXML SDK - Excel 更改单元格格式 - C#
【发布时间】:2018-03-27 00:51:36
【问题描述】:

我有一个 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;

       }

【问题讨论】:

    标签: c# openxml


    【解决方案1】:

    查看编号格式它的一种风格。 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/)。

    【讨论】:

    • 感谢 Xavier,但这并没有告诉我将代码从百分比更改为货币。通过使用模板,我走捷径,并没有创建整个样式逻辑。事后看来可能是个坏主意,但没有时间弄清楚细节。我有生产力工具,但它只向我显示一个无符号整数作为代码,通常我一直在使用它在必要时进行更改。也许是因为我想改变数字格式而不是样式!!!
    【解决方案2】:

    我使用以下代码行将格式从百分比更改为货币。这是因为基本数字格式已默认添加到文件中。

    cell.StyleIndex = 103U
    

    【讨论】:

      猜你喜欢
      • 2010-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-11
      • 1970-01-01
      相关资源
      最近更新 更多