Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 使用Range.TextToColumns转换为多列不起作用_C# 4.0_Csv_Vsto_Excel Addins - Fatal编程技术网

C# 4.0 使用Range.TextToColumns转换为多列不起作用

C# 4.0 使用Range.TextToColumns转换为多列不起作用,c#-4.0,csv,vsto,excel-addins,C# 4.0,Csv,Vsto,Excel Addins,我的目标是使用Range.TextToColumns()在excel中将单个csv字符串转换为多列 我有一个csv文件,其中的列可以包含逗号,在这种情况下,列值周围有双QOUTS。所以为了避免这个问题,我只是在行的末尾进行拆分,以获得单独的行。 我的计划是将每个csv行放在每个excel行的单个单元格中,并使用“文本到列”功能以正确的方式获取我的列值,而不必担心列值中的逗号 当前代码: string row = lines[i - 1]; //single CSV row var startCe

我的目标是使用
Range.TextToColumns()
在excel中将单个csv字符串转换为多列

我有一个csv文件,其中的列可以包含逗号,在这种情况下,列值周围有双QOUTS。所以为了避免这个问题,我只是在行的末尾进行拆分,以获得单独的行。 我的计划是将每个csv行放在每个excel行的单个单元格中,并使用“文本到列”功能以正确的方式获取我的列值,而不必担心列值中的逗号

当前代码:

string row = lines[i - 1]; //single CSV row
var startCell = (Range)worksheet.Cells[i, 1];
var endCell = (Range)worksheet.Cells[i, 1];
var writeRange = worksheet.get_Range(startCell, endCell);

writeRange.Value2 = row;                                   

startCell.TextToColumns(startCell, XlTextParsingType.xlDelimited
, XlTextQualifier.xlTextQualifierDoubleQuote, false
, false, false, true, false, false, false
, XlColumnDataType.xlGeneralFormat, false, false, false);
执行这段代码后,我在每行的单个单元格中获取所有行数据,而不是多个列

我编写的代码与我们在excel工作表中对列执行文本转换时使用的手动方法是并行的,手动方法产生了预期的结果,但在c#中执行同样的操作时失败了

如果我的方法中有错误,请指出,或者指出一些解决方法。

提前感谢。

好的,找到了解决方案。结果是msdn的家伙把这页上的文档搞砸了:

所以,我不是写false,而是写missing,这样它才能正常工作

startCell.TextToColumns(startCell, Excel.XlTextParsingType.xlDelimited,
Excel.XlTextQualifier.xlTextQualifierDoubleQuote, missing,
missing, missing, true, missing, missing, missing, missing,
missing, missing, missing);