C# - 无格式地从excel获取精确数据

时间:2016-04-05 06:57:28

标签: c#

我正在使用Microsoft.Office.Interop.Excel从Excel中读取数据。

Application excel = new Application();
Workbook wb = excel.Workbooks.Open("/sample.xlsx");
Worksheet sheet = wb.Worksheets["Table 1"];

Range range = (Range)sheet.get_Range("A" + 1, "A" + 1);
String value = Convert.ToString(range.Cells[1].Value);
  

列A1 =“01”,输出为“1”

如何从此单元格中获取没有格式的原始数据(我的预期输出为“01”)?对于具有日期格式'MM / dd / yy'的列也是同样的问题。

2 个答案:

答案 0 :(得分:1)

您需要使用文字:

 String value = Convert.ToString(range.Cells[1].Text);

.Text为您提供一个字符串,表示单元格屏幕上显示的内容。使用.Text通常是一个坏主意,因为你可以得到####

.Value2为您提供单元格的基础值(可以为空,字符串,错误,数字(双精度)或布尔值)

.Value与.Value2相同,除非单元格格式为货币或日期,它为您提供VBA货币(可能会截断小数位)或VBA日期。

答案 1 :(得分:0)

我认为问题不在于读者,您的Excel表格必须具有格式化为数字的列。请将列格式化为文本列。如果可能的话。

对于格式化为日期时间的列,您可以解析日期并按照您想要的方式对其进行格式化https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx

enter image description here