Avatar billede koppelgaard Praktikant
14. marts 2008 - 07:34 Der er 5 kommentarer og
1 løsning

C# og Excel, får en fejlmelding

I forbindelse med nedenstående kode for en ven af mig følgende fejl:
'Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))'

Koden åbner en Excelapplikation, og skulle herefter tilføje en tom Excelmappe , men her kommer fejlen når linien:

'oWB = (Excel._Workbook)(oXL.Workbooks.Add(Missing.Value));'
skal køres.

Er der nogen der har et bud ?

//------------------------------------------------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Reflection;
using Excel = Microsoft.Office.Interop.Excel;

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

        Excel.Application oXL;
        Excel._Workbook oWB;
        Excel._Worksheet oSheet;

        private void btnStartExcel_Click(object sender, EventArgs e)
        {
            if (oXL == null)
                oXL = new Excel.Application();
            oXL.Visible = true;

        }

        private void btnStopExcel_Click(object sender, EventArgs e)
        {
            if (oXL != null)
                oXL.Quit();
        }

        private void btnOpWbk_Click(object sender, EventArgs e)
        {
            if (oXL == null)
            {
                oXL = new Excel.Application();
            }
            oXL.Visible = true;
            oWB = new Excel.Workbook();
            oWB = (Excel._Workbook)(oXL.Workbooks.Add(Missing.Value));
            oSheet = (Excel._Worksheet)oWB.ActiveSheet;
        }
    }
}
Avatar billede koppelgaard Praktikant
14. marts 2008 - 07:35 #1
NB:når jeg kører koden får jeg ingen fejl.
Den er åbentbart ok.
Min ven bruger  VS 2005, men fejlen kommer også i VS Express 2008.


Michael
Avatar billede koppelgaard Praktikant
14. marts 2008 - 08:03 #2
linien oWB = new Excel.Workbook(); skulle ikke have været med
Men selv uden denne komme fejlen.
Avatar billede lasserasch Juniormester
14. marts 2008 - 08:34 #3
Kunne godt lyde som om at du bruger en for gammel excel komponent til at forbinde med. Hvor har du fisket dll'en fra?

/Lasse
Avatar billede koppelgaard Praktikant
14. marts 2008 - 08:43 #4
Nu var det min ven der gjorde det.
Men han har selv fundet fejlen:

http://blogs.msdn.com/eric_carter/archive/2005/06/15/429515.aspx
Avatar billede lasserasch Juniormester
14. marts 2008 - 10:54 #5
Ok, som siden også skriver, så er det åbenbart ikke helt lige til. Har ikke selv arbejdet med excel gennem denne metode.

Jeg bruger Asposes komponent i stedet for. Den er meget mere fleksibel og kræver heller ikke at office xxxx er installeret på afviklings pc'en. :-)

/Lasse
Avatar billede koppelgaard Praktikant
15. marts 2008 - 10:00 #6
Hvor finder vi denne komponent henne ?

Michael
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester