c# - syncfusion xlsio 将列类型从文本更改为数字
问题描述
我有一个从网页获取的 .xlsm 文件。这个文件是一个导出的数据库,它有写成文本的数字数据,不能在公式中使用的数字信息,因为 excel 认为它是一个文本。
将列数据类型从文本转换为数字的最有效方法是什么?现在我只能用 for 循环来做,但这个文件最多可以有 10.000 个寄存器。
for (int i = 2; i <= 10002; i++)
{
sheet.Range["A"+i.ToString()].Number = sheet.Range["A" + i.ToString()].Text;
}
我也尝试了 numberformat 属性,但它似乎不相关
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 工作。
推荐阅读
- android - ScrollView 不滚动 android 中存在的所有项目
- python - 如何在python中有效地制作大稀疏矩阵?
- r - 为什么闪亮的应用程序可以在本地运行,但不能在服务器上运行?
- laravel - laravel 查询中的 if 条件
- c# - 动态添加 linq where 语句
- javascript - 按 Enter 按钮并过滤数据
- ios - SiriKit:自定义意图 - 本地化问题
- c++ - 如何使用库中的标头但不使用 CMake 链接到它?
- html - CSS Grid 样式按钮的 Chrome 问题
- amazon-web-services - 无法处理 AWS 标记