Laden...

Exceldatei läßt sich nicht öffnen, COMException

5 Antworten
2,669 Aufrufe
Letzter Beitrag: vor 15 Jahren
Exceldatei läßt sich nicht öffnen, COMException

Hallo,

versuche schon seit Stunden ein Excel-File (Excel 2003) zu öffnen. Leider bleibt das Programm im Debugmodus bei der Open-Methode hängen. Der Compiler bringt eine COMException mit der Meldung: "Old format or invalid type library. (Exception from HRESULT:0x80028018(TYPE_E_INVDATAREAD))"
Ich habe die Office.Interop.Excel eingebunden. Hier mal der Quelltext:


using System;
using System.Reflection;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
using System.IO;



namespace WindowsForms_Excel
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // Excel-Instanz erzeugen und sichtbar schalten
            Excel.Application excelBlatt = new Excel.Application();
            excelBlatt.Visible = true;

            string fileName;
            object refmiss = Missing.Value;


            OpenFileDialog opf_dlg = new OpenFileDialog();
            DialogResult dlg = opf_dlg.ShowDialog();
         //   fileName = opf_dlg.FileName;
            //  für Test
            fileName = Path.Combine(Application.StartupPath, "Exceltest.xls");

            Excel.Workbook workbook;
            // Excel-File öffnen
            try
            {
                workbook = excelBlatt.Workbooks.Open(fileName,refmiss, refmiss, refmiss, refmiss, refmiss, refmiss, refmiss, refmiss, refmiss, refmiss, refmiss, refmiss, refmiss, refmiss);
            }
            catch (System.Runtime.InteropServices.COMException ce)
            {
                MessageBox.Show("Fehler beim Öffnen", ce.Message);
            }

Hat da jemand eine Idee? Was besagt eigentlich der Fehlercode HRESULT genau? Gibts da eine Aufschlüsselung?
Ich habe auch schon die Interop.Excel 11.0 gegen die 12.0 getauscht.

Morgen,

guck mal hier :
Support

lg.

Fehler gefunden !

Danke für den Tipp. Habe zwar noch rumgefummelt, es liegt aber nun daran das Excel bei mir in Englisch installiert ist, und ich somit zuerst de CultureUI("en-US") setzen mußte.

Vermutlich das selbe Problem

ich habe glaube ich genau das selbe problem.
Bei mir ist allerdings alles auf Englisch. BS/Office/Visiual Studio. Wirklich alles!

Ich bekomm es aber trotzdem nicht hin...

            try
            {
                // Start Excel and get Application Object
                object m = System.Reflection.Missing.Value;
                Excel.Application oXL = new Excel.Application();
                oXL.Visible = true;
                oXL.UserControl = true;
                System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("en-US");
                oXL.GetType().InvokeMember("Add", System.Reflection.BindingFlags.InvokeMethod, null, oXL, null, ci);
                Excel.Workbook oWB = oXL.Workbooks.Open(path,m,m,m,m,m,m,m,m,m,m,m,m,m,m);
            }
            catch
            {
                MessageBox.Show("Your current Microsoft Windows regional " +
                    "settings do not match the settings required by the macros " +
                    "in this document. Macros in this document might not run or " +
                    "might return incorrect data. Do not change your " +
                    "regional settings. WAS ZUTUNT IST !!!!");
            }

habt ihr evtl. eine Idee?

ok. ich habs, waren zwei Fehler drin, der eine ging mit dem Code wie beschrieben. Aber der andere habe ich nicht auf anhieb gefunden. Vll. einfach mal wieder zu frueh gefragt 😉