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

Gal*_*you 1 c# com excel


我在这里做了一些简单的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;
            }
Run Code Online (Sandbox Code Playgroud)


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

Ran*_*832 5

"@".您可能需要设置值之前进行设置.

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