猿问

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

我已阅读Microsoft.Office.Interop.Excel - *.csv 文件打开但它对我不起作用,我不知道为什么。


首先,我只尝试使用我需要的可选参数,如下所示:


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 文件(用于打开 csv 的 excel 标准程序)时,它会根据需要对其进行格式化。以分号作为分隔符。我可能已经在属性中设置过一次。


炎炎设计
浏览 374回答 2
2回答

慕的地10843

尝试OpenText:Excel.Application ex = new Excel.Application();Excel.Workbooks wbs = ex.Workbooks;wbs.OpenText(path,    DataType:Excel.XlTextParsingType.xlDelimited,     Semicolon: true);

郎朗坤

https://docs.microsoft.com/en-us/dotnet/api/microsoft.office.interop.excel.workbooks.open?view=excel-pia格式对象可选对象。如果 Microsoft Excel 正在打开文本文件,则此参数指定分隔符,如下表所示。如果省略此参数,则使用当前分隔符。...分隔符对象可选对象。如果文件是文本文件并且 Format 参数为 6,则此参数是一个字符串,用于指定要用作分隔符的字符。例如,对制表符使用 Chr(9),对逗号使用“,”,使用“;” 对于分号,或使用自定义字符。仅使用字符串的第一个字符。所以你的 open 语句应该是: xlWorkBook = xlApp.Workbooks.Open(path, Format:6, Delimiter:";");
随时随地看视频慕课网APP
我要回答