OleDbConnection Внешняя таблица не в ожидаемом формате - PullRequest
0 голосов
/ 14 апреля 2020

Следующий код работает нормально при попытке открыть файл xls или xlsx. У меня проблемы с открытием файла, загруженного с внешнего веб-сайта. Файл форматируется как xls и открывается в Excel, но его содержимое основано на html. Если я вручную открою этот файл и сделаю Файл> Сохранить как XLSX, а затем попытаюсь открыть его, следующий код работает нормально.

Кто-нибудь знает способ открыть этот файл Excel (html) с помощью OleDbConnection или каким-либо другим способом?

При открытии этого файла появляется сообщение об ошибке: {"Внешняя таблица" не в ожидаемом формате. "}

                // Connection String to Excel Workbook   
                string  excelConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Importfile.FullName + ";Extended Properties='Excel 12.0;HDR=YES;';";


                // Create Connection to Excel Workbook   
                using (System.Data.OleDb.OleDbConnection connection = new System.Data.OleDb.OleDbConnection(excelConnectionString))
                {
                    connection.Open();
                    System.Data.OleDb.OleDbCommand command = new System.Data.OleDb.OleDbCommand("Select * FROM [Sheet1$]", connection);
                 }

1 Ответ

0 голосов
/ 14 апреля 2020

Я решил, выполнив этот фрагмент кода.

                string htmlFilePathAndName = @"C:\Downloads\Input.xls";
                string newXlsxFilePathAndName = @"C:\Downloads\Output.xlsx";

                Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
                Microsoft.Office.Interop.Excel.Workbook xls;
                xls = excel.Workbooks.Open(htmlFilePathAndName);
                xls.SaveAs(newXlsxFilePathAndName, XlFileFormat.xlOpenXMLWorkbook); // exception
                xls.Close();
...