0

我正在尝试在我的应用程序中上传一个 excel(.xlsx) 文件,该文件是由同一个应用程序通过 open xml sdk 创建的。我面临着异常“外部表不是预期格式”。但是,如果我手动打开文件并保存并重试,它会被上传而没有任何错误。有没有办法以编程方式执行打开 excel 文件并保存的任务?我不能要求我的用户/客户遵循这个解决方法。任何线索都会有所帮助。下面是引发异常的代码片段。'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;
    }
4

1 回答 1

0

我通过以编程方式打开 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();
于 2022-01-09T06:43:10.597 回答