我有一个excel文件,其中包含4个工作表.外部系统每天发送excel文件,我的程序读取然后将数据存储到db.我有3个文件可能已被损坏当我的程序尝试读取它给出错误"外部表不是预期的格式"的文件.当我尝试在办公室界面中打开文件时,它返回Excel Excel文件中找到不可读的内容.您要恢复此工作簿的内容吗?等等...
当我用office excel修复文件并重新保存后启动程序时,它可以工作.但我需要在程序开始读取之前修复这些文件.有办法修复办公室等excel文件吗?
我使用的是Microsoft.ACE.OLEDB.12.0;
您可以使用Excel Interop打开文件并像Excel一样进行修复.但是,如果没有MS Office,您无法在计算机上使用您的程序.您可以尝试第三方库,例如:
Excel Interop的代码如下:
Missing missing = Missing.Value;
Application excel = new Application();
Workbook workbook = excel.Workbooks.Open(sourceFilePath,
missing, missing, missing, missing, missing,
missing, missing, missing, missing, missing,
missing, missing, missing, XlCorruptLoad.xlRepairFile);
workbook.SaveAs(savedFile, XlFileFormat.xlWorkbookDefault,
missing, missing, missing, missing,
XlSaveAsAccessMode.xlExclusive, missing,
missing, missing, missing, missing);
workbook.Close(true, missing, missing);
Run Code Online (Sandbox Code Playgroud)