首页 新闻 搜索 专区 学院

C# 将excel的文本格式转为数字格式

0
悬赏园豆:15 [已解决问题] 解决于 2022-10-09 15:44


将带绿色箭头的形式用C#语言转换为数字格式?

。LANGYUAN。的主页 。LANGYUAN。 | 初学一级 | 园豆:136
提问于:2022-10-08 09:57
< >
分享
最佳答案
0

用Free Spire.XLS,可以从NuGet安装
Workbook workbook = new Workbook();
workbook.LoadFromFile(@"Test.xlsx");
Worksheet sheet = workbook.Worksheets[0];
sheet.AllocatedRange.NumberFormat = "0.00";
workbook.SaveToFile("ConvertTextToNumber.xlsx", ExcelVersion.Version2013);

收获园豆:15
ms_doudou | 小虾三级 |园豆:1142 | 2022-10-08 14:57

您好,大佬,FreeSpire.XLS 这个程序集主要是实现啥?

。LANGYUAN。 | 园豆:136 (初学一级) | 2022-10-08 15:14

然后你就可以使用Spire了
首先文件中必须要引用
using Spire.Xls;命名空间
给出一个读取Excel中数据到DataTable中的例子
Workbook book = new Workbook();
book.LoadFromFile(savepath);//savepath是要读取EXCEL文件的物理路径
DataTable table = book.Worksheets[0].ExportDataTable();
三句话搞定就可以得到Excel中的数据

。LANGYUAN。 | 园豆:136 (初学一级) | 2022-10-08 15:23

噢噢明白了

。LANGYUAN。 | 园豆:136 (初学一级) | 2022-10-08 15:26

sheet.AllocatedRange.NumberFormat = "0.00"这句代码在运行时不起作用Why??

。LANGYUAN。 | 园豆:136 (初学一级) | 2022-10-08 15:52

@。LANGYUAN。: 我测了下貌似可以啊,你换这句代码看看有效果吗:sheet.AllocatedRange.ConvertToNumber();

ms_doudou | 园豆:1142 (小虾三级) | 2022-10-09 09:33

@ms_doudou: 好呢

。LANGYUAN。 | 园豆:136 (初学一级) | 2022-10-09 13:06

@ms_doudou: 🤭,谢谢大佬,可以运行处理呢,这句话很重要sheet.AllocatedRange.ConvertToNumber(); 谢谢大佬

。LANGYUAN。 | 园豆:136 (初学一级) | 2022-10-09 13:22

@ms_doudou: 大佬可以问一下你一般是如何学习编程的呀,非常崇拜你

。LANGYUAN。 | 园豆:136 (初学一级) | 2022-10-09 13:25
其他回答(1)
0

通过判断每一列的属性,设置列相应属性:

switch (dataTable.Columns[i].DataType.ToString())
{
   case "System.DateTime":
       DateTime dateTime;
       DateTime.TryParse(strValue, out dateTime);
       cell.SetCellValue(dateTime);
       cell.CellStyle = dateStyle;
       break;
   case "System.Boolean":
       bool bValue;
       bool.TryParse(strValue, out bValue);
       cell.SetCellValue(bValue);
       break;
   case "System.Int16":
   case "System.Int32":
   case "System.Int64":
   case "System.Byte":
       int iValue = 0;
       int.TryParse(strValue, out iValue);
       cell.SetCellValue(iValue);
       break;
   case "System.Decimal":
   case "System.Double":
       double dValue = 0;
       double.TryParse(strValue, out dValue);
       cell.SetCellValue(dValue);
       break;
   default:
       cell.SetCellValue(strValue);
       break;
}
三人乐乐 | 园豆:4593 (老鸟四级) | 2022-10-08 11:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册