外部 Table 未按预期格式打开 xml

External Table not in expected format open xml

我正在尝试在我的应用程序中上传一个 excel(.xlsx) 文件,该文件是由同一应用程序通过打开 xml sdk 创建的。我正面临异常 'External table not in expected format'。但是,如果我手动打开文件并保存并重试,则上传时没有任何错误。 有没有办法以编程方式执行打开 excel 文件并保存的任务?我无法让我的 user/client 遵循此解决方法。任何线索都会有所帮助。下面是抛出异常的代码片段。 'con.open()' 行抛出上述异常。请找到使用的连接字符串

private readonly string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=Yes;MAXSCANROWS=0;IMEX=1\";";

public DataTable GetSheetData(string sheetName)
    {
        System.IO.FileInfo fileInfo = new System.IO.FileInfo(this.filePath);
        
        DataTable excelData = new DataTable();
        excelData.Locale = CultureInfo.InvariantCulture;

        using (OleDbConnection con = new OleDbConnection(string.Format(CultureInfo.CurrentCulture, this.connectionString, this.filePath)))
        {
            con.Open();

            if (!string.IsNullOrEmpty(sheetName))
            {
                using (OleDbDataAdapter dataAdapter = new OleDbDataAdapter(string.Format(CultureInfo.CurrentCulture, "select * from [{0}$]", sheetName), con))
                {

                    dataAdapter.Fill(excelData);
                }
            }
        }

        
        return excelData;
    }

我通过以编程方式打开 excel 文件并通过 Interop 保存它找到了解决方法。现在我可以上传 excel 文件而不会出现任何错误。

var ExcelApp = new Microsoft.Office.Interop.Excel.Application();
            Microsoft.Office.Interop.Excel.Workbook workbook = ExcelApp.Workbooks.Open(filePath);                

            workbook.Save();
            workbook.Close();
            ExcelApp.Quit();