如何告诉Range.NumberFormat只是按原样放置数据?

时间:2012-01-10 20:39:22

标签: c# excel com


我在这里做了一些简单的excel自动化,在我的代码周围我有一个切换块,检查CellType(我构建的自定义枚举)并基于它进行一些格式化。
这是我的代码:

            switch (celltype)
            {
                case CellType.String:
                    cellRangeFormat = cellrange.get_Range(cell, cell);
                    cellRangeFormat.NumberFormat = ????;
                    break;
                case CellType.Numeric:
                    cellRangeFormat = cellrange.get_Range(cell, cell);

                    cellRangeFormat.NumberFormat = ";0_);[Red](0)";
                    break;
                case CellType.Percentage:
                    cellRangeFormat = cellrange.get_Range(cell, cell);
                    cellRangeFormat.NumberFormat = "#,0.00 %";
                    break;
                case CellType.Decimal:
                    cellRangeFormat = cellrange.get_Range(cell, cell);
                    //cellrangeformat.NumberFormat = "#,0.00";
                    cellRangeFormat.NumberFormat = "#,##0.00_);[Red](#,##0.00)";
                    break;
                default:
                    break;
            }


现在的问题是,在某些列中,值为“000”,虽然我将CellType指定为字符串,但excel会格式化值并将单元格显示为空。如果我选择单元格,我会在其中看到值0。我希望excel停止格式化我的值,如果它们是字符串并按原样粘贴它们。
我怎么能这样做?

1 个答案:

答案 0 :(得分:5)

"@"。您可能需要在设置值之前将其设置为

这也将它设置为真正将其视为一个字符串(因此你不能在公式中对单元格进行算术运算,它将是左对齐的等等)。