将文件解析到DataTable

问题描述 投票:0回答:1

我必须将具有.xls扩展名的文件解析为DataTable对象。似乎文件是cp866编码中具有固定列长的文本表,但是我无法使用适当的连接字符串来读取它。

我可以用MS Excel成功打开此类文件,并且在打开时写Opening DBF 4。下面的示例尝试读取诸如简单文本之类的文件,您可能会注意到某些字符无法识别。

有人可以帮助解决这个问题吗?

enter image description here

这里是标题(不确定最后一个空格)

0003 0014 0004 0002 0001 0000 0000 0000 0001 0002 fffd 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0065 0000 0000 0054 0052 0041 004e
005f 0049 0044 0000 0000 0000 0000 0043 0001 0000 0000 0000 000c 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 fffd fffd fffd fffd 0000 0000 0000 0000
0000 0000 0000 0043 000d 0000 0000 0000 0002 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 fffd fffd fffd fffd fffd fffd fffd fffd fffd 0000 0000 0043
000f 0000 0000 0000 0004 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 fffd fffd fffd fffd fffd 0000 0000 0000 0000 0000 0000 0043 0013 0000 0000 0000
000f 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 fffd fffd
fffd fffd fffd fffd fffd fffd 0000 0000 0000 0043 0022 0000 0000 0000 0016 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 fffd fffd fffd fffd fffd fffd
fffd fffd 0000 0000 0000 0043 0038 0000 0000 0000 0008 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 fffd fffd fffd fffd 005f fffd fffd fffd fffd 0000
0000 0043 0040 0000 0000 0000 0013 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 fffd fffd fffd fffd 005f fffd fffd fffd fffd 0000 0000 0043 0053 0000
0000 0000 000a 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
fffd fffd fffd fffd fffd 005f fffd fffd fffd fffd 0000 004e 005d 0000 0000 0000 000e 0002
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 fffd fffd fffd fffd
fffd 005f fffd fffd fffd fffd 0000 004e 006b 0000 0000 0000 000f 0002 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 fffd fffd fffd fffd fffd 0000 0000 0000
0000 0000 0000 0043 007a 0000 0000 0000 0013 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 fffd fffd fffd 005f fffd fffd fffd 0000 0000 0000 0000 0043
fffd 0000 0000 0000 0006 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 fffd fffd fffd 0000 0000 0000 0000 0000 0000 0000 0000 0043 fffd 0000 0000 0000
0002 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0049 0044
005f 0031 0000 0000 0000 0000 0000 0000 0000 0043 fffd 0000 0000 0000 0018 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0049 0044 005f 0032 0000 0000
0000 0000 0000 0000 0000 0043 fffd 0000 0000 0000 0018 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 000d 0020
c# excel dbf
1个回答
0
投票

假设xls文件只是具有重命名扩展名的DBF文件,请使用NDBFReader,它很简单

using (var table = Table.Open("D:\\yourfile.xls"))
{
    return table.AsDataTable();
}

如果编码检测失败,请使用

Table.Open("D:\\yourfile.xls",Encoding.GetEncoding("CP866"));
© www.soinside.com 2019 - 2024. All rights reserved.