【发布时间】:2014-08-15 03:17:34
【问题描述】:
我有以下函数将 csv 文件转换为 xls 文件。
…
Application objExcel = new Application();
Workbooks objBooks = (Workbooks)objExcel.Workbooks;
object objOpt = System.Reflection.Missing.Value;
try
{
objBooks.OpenText(inputPathNFileName, XlPlatform.xlWindows, 1, XlTextParsingType.xlDelimited, XlTextQualifier.xlTextQualifierDoubleQuote,
false, false, false, true, false, false, objOpt, objOpt, objOpt, objOpt, objOpt, objOpt, objOpt);
Workbook objBook = objExcel.ActiveWorkbook;
objBook.SaveAs(outPathNFileName, XlFileFormat.xlWorkbookNormal, objOpt, objOpt, objOpt, objOpt, XlSaveAsAccessMode.xlNoChange, objOpt, objOpt, objOpt, objOpt, objOpt);
objBook.Close(false, objOpt, objOpt);
objExcel.Quit();
releaseObject(objBook);
releaseObject(objBooks);
releaseObject(objExcel);
}
catch (Exception e)
{
…
}
现在我的问题是,如果我的 csv 文件的行数超过 65,536 行,我将在 SaveAs 步骤收到警告消息,并且 65,536 之后的所有行都将被切掉。警告消息是“此工作簿包含所选格式的行和列限制之外的单元格中的数据。超过 256(IV) 列 x 65,536 行的数据将不会被保存。"
如何解决此问题,以使 csv 文件的行/列不受限制?
【问题讨论】:
-
csv->xls?你无法绕过它。这是 .xls 格式的基本限制。如果您想要更多行,则必须升级到 .xlsx,它的限制要高得多。
-
在代码中检查行数,如果 > 65535,则显示警告说 Excel 2003 最多仅支持 64k 行,请升级到 Office 2010+ 以使用 .xlsx 格式.
-
我尝试用 xlsx 扩展名更改 outPathNFileName,但我仍然在 SaveAs 处收到警告。