C# открыть excel для чтения ошибки
Привет,
Не знаю почему, но я не могу открыть файл excel.
Это мой код:
private void button2_Click(object sender, EventArgs e) { Excel.Workbook xlWorkBook; Excel.Worksheet xlWorkSheet; object misValue = System.Reflection.Missing.Value; Excel.Application xlApp = new Excel.Application(); if (xlApp == null) { MessageBox.Show("Excel is not properly installed!!"); return; } xlApp = new Excel.Application(); xlWorkBook = xlApp.Workbooks.Open(textBox1.Text, 0, true, 5, "", "", true, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); xlWorkSheet= (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); int _countcolumns = xlWorkSheet.Cells.Find( "*", System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value, Excel.XlSearchOrder.xlByColumns, Excel.XlSearchDirection.xlPrevious, false, System.Reflection.Missing.Value, System.Reflection.Missing.Value).Column; int _lastrow = xlWorkSheet.Cells.Find( "*", System.Reflection.Missing.Value, Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlWhole, Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlPrevious, false, System.Reflection.Missing.Value, System.Reflection.Missing.Value).Row; xlWorkBook.Close(true, null, null); xlApp.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject(xlWorkSheet); System.Runtime.InteropServices.Marshal.ReleaseComObject(xlWorkBook); System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp); MessageBox.Show("Last column used" + _countcolumns.ToString() + " and last row: " + _lastrow.ToString()); } private void button1_Click(object sender, EventArgs e) { string path; OpenFileDialog file = new OpenFileDialog(); if (file.ShowDialog() == DialogResult.OK) { path = file.FileName; textBox1.Text = path; } }
Я получаю ошибку
System.Runtime.InteropServices.COMException (0x80010105). Он указывает на строку, в которой я пытаюсь открыть файл Excel.
РЕДАКТИРОВАТЬ ****** :
xlWorkBook = xlApp.Workbooks.Open(textBox1.Text, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, Microsoft.Office.Interop.Excel.XlCorruptLoad.xlExtractData); Since i have over 4k cells with different format style and few cells with maybe over 200 chars , that was the best solution for me. Hope someone will find it useful !
Что я уже пробовал:
Несколько советов я нашел в интернете, но ни один не сработал.