我正在使用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'的列也是同样的问题。
答案 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