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);