Microsoft.Office.Interop.Excel-使用分号分隔符打开csv

时间:2018-07-31 09:40:50

标签: c# excel csv

我已经读过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)时,它会根据需要设置其格式。以分号为分隔符。我可能曾经在属性中设置过一次。

2 个答案:

答案 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)

https://docs.microsoft.com/en-us/dotnet/api/microsoft.office.interop.excel.workbooks.open?view=excel-pia

格式化对象

可选对象。如果Microsoft Excel正在打开文本文件,则此参数指定分隔符,如下表所示。 如果省略此参数,则使用当前的定界符。

...

分隔符对象

可选对象。 如果文件是文本文件,并且Format参数是6 ,则此参数是一个字符串,用于指定用作定界符的字符。例如,对选项卡使用Chr(9),对逗号使用“,”,对“;”使用用于分号,或使用自定义字符。仅使用字符串的第一个字符。

因此,您的公开声明应为: xlWorkBook = xlApp.Workbooks.Open(path,Format:6,Delimiter:“;”);