Excel单元格格式问题

问题描述 投票:-1回答:2

我正在将数据写入Excel工作表,我正在使用interop将数字格式应用于单元格范围。代码工作正常,当我打开excel表时,格式正在应用于单元格,但它不起作用(就像我右键单击并检查单元格的格式,它是数字但单元格值显示为文本)。

我使用下面的代码来设置格式

Excel.Range range = objWorksheet.get_Range("B2").EntireColumn;
range.NumberFormat = "0";

当我打开excel时,单元格格式为Number但显示为文本。

c# excel excel-interop
2个回答
2
投票
Excel.Range oRange = objWorksheet.get_Range("A1:C10");
foreach(Excel.Range cell in oRange.Cells)
{
    cell.Formula = cell.Formula
}

如果我在完成写入过程后将上面的代码放在其工作正常。


1
投票

你能说明你是如何写数据的吗?

我不确定这是一个至关重要的变化,因为即使数字在Excel中存储为文本,您仍然可以对其执行数学运算。

您可以进行许多更改。我将尝试概述一些。

您可以在单元格中向右手动插入一个函数,只需使其等于列,并将数字存储为文本乘以1.这将创建一个包含一般格式单元格的列。

如果它必须在VBA中,您也可以在编写数据时尽可能简单地包含此子:

Public Sub changetextnumbers()
       Range("A:A").Select 'Change to reflect the column
       With Selection
            Selection.NumberFormat = "General"
                     .Value = .Value
       End With
End Sub

我们可以做更多的事情,但我们需要更多地了解您如何编写数据。

© www.soinside.com 2019 - 2024. All rights reserved.