【发布时间】:2018-10-20 16:11:29
【问题描述】:
我的 Excel 文件中有一个单元格包含这个数字:5892101102012990
和其他包含混合数据的单元格(也是字符串)
我得到这个单元格的数据是这样的:
var filestream = File.Open(@"D:\111XLS\File.xlsx", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
var reader = ExcelReaderFactory.CreateReader(filestream);
while (reader.Read())
{
var intt = int.Parse(textBox1.Text);
var v1 = reader.GetValue(intt);
var v2 = reader.GetValue(intt + 3);
listBox1.Items.Add(v1 ?? "");
listBox2.Items.Add(v2 ?? "");
}
当它返回到那个单元格时,我有这个:5.89210110201299E+15
如果我将 Excel 文件中的单元格格式更改为 Special(Excel 假定它是一个邮政编码),它将返回准确的数字,但编辑 Excel 文件是没有选项的。
我知道我可以使用reader.GetDouble(intt); 获取数据,但由于内容混合,这会带来更多麻烦。
有什么建议可以告诉ExcelDataReader 不要将5892101102012990 转换为5.89210110201299E+15?
【问题讨论】:
-
有没有办法将 FileStream 的单元格即时转换为字符串,然后将其提供给 ExcelDataReader 以解决问题?
标签: c# types exceldatareader