Laden...

Exceldatei läßt sich nicht öffnen, COMException

Erstellt von oehrle vor 14 Jahren Letzter Beitrag vor 14 Jahren 2.578 Views
O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 14 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.

S
16 Beiträge seit 2009
vor 14 Jahren

Morgen,

guck mal hier :
Support

lg.

O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 14 Jahren
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.

T
34 Beiträge seit 2009
vor 14 Jahren
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?

T
34 Beiträge seit 2009
vor 14 Jahren

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 😉