【问题标题】:Open Xml Excel set cell format to be Percentage [duplicate]打开 Xml Excel 将单元格格式设置为百分比 [重复]
【发布时间】:2014-05-09 16:41:09
【问题描述】:

我有以编程方式在电子表格中插入单元格的 c# 代码。我无法为这些单元格设置百分比格式:

        Cell cell = OpenXmlHelper.GetCell(ws, address);            
        if (cell == null)
        {
            cell = InsertCellInWorksheet(ws, rowIndex, column);
        }

        cell.DataType = CellValues.Number; 


        cell.CellValue = new CellValue(value.ToString());

我需要一些设置Percentage 的代码,而不是cell.DataType = CellValues.Number;。 你能给我一些关于openxml中excel单元格格式百分比的线索或教程吗?

Open Xml Excel set cell format to be Percentage 相比 我有数字 0.08,我需要将其显示为 8%。

【问题讨论】:

    标签: c# excel openxml


    【解决方案1】:

    试试cell.StyleIndex = (UInt32Value)1U;

    根据 renathy 的评论进行编辑

    此代码改编自 Open XML SDK 2.0 Productivity Tool 提供的代码。在此工具中查看百分比格式的单元格时,它生成的代码是:

    // Creates an Cell instance and adds its children.
    public Cell GenerateCell()
    {
        Cell cell1 = new Cell(){ CellReference = "A1", StyleIndex = (UInt32Value)1U };
        CellValue cellValue1 = new CellValue();
        cellValue1.Text = "0.2";
    
        cell1.Append(cellValue1);
        return cell1;
    }
    

    至于1U 是什么,它似乎是微软决定用来表示样式的神奇数字(U 部分只是表示该数字是无符号的)。

    【讨论】:

    • 这没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。
    • @RahulSharma 设置该属性应将单元格格式化为百分比,这不是答案吗?
    • 您可以将上述观点添加为评论,因为它只需添加一个班轮回复。我对评论的意图不是不同意您的回复作为答案,而是将其添加为对原始问题的评论。
    • @RahulSharma 我不同意,这是一个答案,即使它是一个单行字,也应该这样发布,以便在解决问题时可以将问题标记为已回答。跨度>
    • 这不起作用。它不会改变单元格的格式。即使它是正确的答案,也可以看到一些 cmets - 例如 1U 是什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-14
    相关资源
    最近更新 更多