syncfusion xlsio 将列类型从文本更改为数字

syncfusion xlsio change column type from text to number

我有一个从网页获取的 .xlsm 文件。这个文件是一个导出的数据库,它有写成文本的数字数据,不能在公式中使用的数字信息,因为excel认为它是文本。

将列数据类型从文本转换为数字的最有效方法是什么? 现在我只能用 for 循环来完成它,但是这个文件最多可以有 10.000 个寄存器。

for (int i = 2; i <= 10002; i++)
{
        sheet.Range["A"+i.ToString()].Number = sheet.Range["A" + i.ToString()].Text;
}

我也试过使用数字格式属性,但似乎没有关系

sheet.Range["A2:A10002"].NumberFormat = "#";

这里是 Excel 文件的示例。 https://drive.google.com/file/d/1Kz98NDYsj7k7zCmGyl-ohz_VErnsyGvV/view?usp=sharing

当数字存储为文本时,Syncfusion XlsIO 不支持 Microsoft Excel 的转换为数字选项。而且,除了如下循环和设置数字格式外,没有其他有效的方法可以实现这一目标。

代码片段:

for (int i = 2; i <= 10002; i++)
{
    double value;
    string rowString = i.ToString();
    if (double.TryParse(sheet.Range["A" + rowString].Value, out value))
    {
        sheet.Range["A" + rowString].Number = value;
        sheet.Range["A" + rowString].NumberFormat = "0";
    }
}

注意:我为 Syncfusion 工作。