我已经读过Microsoft.Office.Interop.Excel - *.csv file opening,但是它对我不起作用,我也不知道为什么。
首先,我仅尝试使用需要的可选参数,如下所示:
Excel.Application xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Open(path, Delimiter:";");
它将打开csv,但以逗号分隔。
然后我像在上面引用的线程中一样尝试过,它根本没有分开。
Excel.Application xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Open(path,0,false,5, "","",false,Excel.XlPlatform.xlWindows,";",true,false,0,true,false,false);
这是我使用的一些示例数据:
2,138;2,066;2,022;2,076;0,297;;;0,770;1,898;1,864;1,798;1,859;1,715;20,032;8,599;0,039;;;0,336;Iteration: 5 of 500
0,298;0,295;0,298;0,297;0,297;;;0,302;0,296;0,296;0,297;0,297;0,299;0,300;0,296;0,037;;;0,409;Iteration: 6 of 500
0,297;0,299;0,296;0,297;0,311;;;0,295;0,295;0,295;0,295;0,295;0,295;0,306;0,306;0,039;;;0,372;Iteration: 7 of 500
0,299;0,298;0,295;0,297;0,295;;;0,294;0,307;0,295;0,295;0,296;0,297;0,296;0,295;0,040;;;0,368;Iteration: 8 of 500
有人知道我在做什么错吗?
当我双击打开csv文件(Excel标准程序打开csv)时,它会根据需要设置其格式。以分号为分隔符。我可能曾经在属性中设置过一次。
答案 0 :(得分:0)
尝试OpenText
:
Excel.Application ex = new Excel.Application();
Excel.Workbooks wbs = ex.Workbooks;
wbs.OpenText(path,
DataType:Excel.XlTextParsingType.xlDelimited,
Semicolon: true);
答案 1 :(得分:0)
格式化对象
可选对象。如果Microsoft Excel正在打开文本文件,则此参数指定分隔符,如下表所示。 如果省略此参数,则使用当前的定界符。
...
分隔符对象
可选对象。 如果文件是文本文件,并且Format参数是6 ,则此参数是一个字符串,用于指定用作定界符的字符。例如,对选项卡使用Chr(9),对逗号使用“,”,对“;”使用用于分号,或使用自定义字符。仅使用字符串的第一个字符。
因此,您的公开声明应为: xlWorkBook = xlApp.Workbooks.Open(path,Format:6,Delimiter:“;”);