我的目标是使用 .csv 将单个 csv 字符串转换为 excel 中的多列Range.TextToColumns()
。
我有一个 csv 文件,其列中可以包含逗号,在这种情况下,列值周围有双引号。所以为了避免这个问题,我只是在行尾拆分以获得单独的行。我的计划是将每个 csv 行放在每个 excel 行的单个单元格中,并使用 Text to columns 函数来使我的列值以一种正确的方式获得,而不必担心列值中的逗号。
当前代码:
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 表中执行 Text to Columns 时使用的手动方法并行的代码,手动方法产生了预期的结果,但是在 c# 中完成时同样的事情失败了。
如果我的方法中有任何错误,请指出错误,或者指出一些出路。
提前致谢。