Excel mit C# öffnen

the incredible Leitman

Erfahrenes Mitglied
So, ich hab Dir jetzt mal ein paar Threads unter meinem Namen gesucht:
[thread=218560]Inhalt einer Excel-Zelle - Thread[/thread] (via Interop. Hier findest übrigens ne Menge Links zum Thema. ;))
-.-
Ich hasse es, wenn sowas passiert :(
>
Leitman hat gesagt.:

DANN komm ich mir richtig unnötig, blöd und übergangern vor ;P
 

Malaxo

Erfahrenes Mitglied
Danke schon mal:) Hoffe nun komm ich ein wenig weiter.

Folgendes Problem noch:

using Excel = Microsoft.Office.Interop.Excel;

Hier sagt es mir das ein Assemblyverweis Fehlt. Jedoch sollte der doch in Microsoft Excel 11.0 Object Library (COM) drin sein oder nicht? Diesen Verweis hab ich drin. Kann es möglich sein das ich die Microsoft.Office.Interop.Excel.dll noch Manuel herunterladen muss und hinzufügen muss?

Herzlichen Dank Leute ich war schon am Grunde meiner OO Programmierung:)
 

Malaxo

Erfahrenes Mitglied
Naja dann ist klar das ich diese nicht finde. Kann ich einfach die DLL auf den Serverkopieren und den Pfad angeben würde das Funktionieren?

BTW: Excel ist verfügbar aber NICHT auf dem Sharepointserver. DLL Kopieren möglich...
 

Malaxo

Erfahrenes Mitglied
Hm... Auf Sharepoint sind "nur" die Office Services installiert. Sharepoint hat das doch bestimmt mit integriert. Meint ihr das reicht?

Auf meinem Computer hab ich Excel Installiert jedoch finde ich die .DLL trozdem nicht unter COM.

Was sagt ihr, wie soll ich es testen?
 

Christian Kusmanow

Erfahrenes Mitglied
Also die Referenz heißst genau: Microsoft Excel X.X ObjectLibrary (X steht für die jeweilige Version) Für jedes Office-Produkt gibt es jeweils eine.

Hast Du Dir die Threads angeschaut, die ich Dir gepostet habe? Währe Microsoft.Jet.OLEDB für dich nicht die einfachere Variante?
 

Malaxo

Erfahrenes Mitglied
Das lustige ist ja das ich Microsoft Excel 11.0 Object Library schon von Anfang an drin hatte und trozdem der Referenzfehler kommt:) Darum ist ja meine Frage noch offen.

Hab auch die Referenz raus genommen und neu rein geladen geht nicht. Das versteh ich nicht:)

Ja hab deine Links angeschaut schon vor dem Posten hab es einfach nicht hin bekommen, sorry bin halt nicht so der C# Pro jedoch bräuchten wir es hier:)

Was soll ich tun? :confused:
 

Norbert Eder

Erfahrenes Mitglied
Hm... Auf Sharepoint sind "nur" die Office Services installiert. Sharepoint hat das doch bestimmt mit integriert. Meint ihr das reicht?

Auf meinem Computer hab ich Excel Installiert jedoch finde ich die .DLL trozdem nicht unter COM.

Was sagt ihr, wie soll ich es testen?

Ich bezweifle dass die Office Services dafür ausreichend sind. Müsstest du testen.

Im Anhang ein Screenshot was du genau wie und wo auswählen musst. Du erstellst die Referenz auch hoffentlich im richtigen Projekt (solltest du mehrere Projekte in deiner Solution haben).
 

Anhänge

  • excel_reference.png
    excel_reference.png
    13,4 KB · Aufrufe: 444

Malaxo

Erfahrenes Mitglied
Ja:) das ist drin;) Glaubt mir doch:) Ich habe nur 1 Projekt offen und ich mache Rechtsklick auf Verweise - Verweis hinzufügen und unter aktuell ist es schon drin. Wenn ich es raus nehme und wieder rein mache bekomme ich trotzdem diesen Fehler:)

Das ist ja was mich "umbringt" es stimmt doch alles. Dein Code sieht auch wunderbar aus:)

ich Poste gleich mal meinen Ganzen Code auch die AssemblyInfo.cs:

Webpart1.cs CODE
Code:
using System;
using System.Runtime.InteropServices;
using System.Web.UI;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Serialization;

using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.WebPartPages;

using Microsoft.Office.Core;
using Excel = Microsoft.Office.Interop.Excel; 

namespace Excelreader
{
    [Guid("8db383a3-7a57-40bb-b943-68ce057fe8ad")]
    public class Excelreader : System.Web.UI.WebControls.WebParts.WebPart
    {
        public void Open()
        {
            string filename = "MeinPfad";
            Excel.Application exlApp = new Excel.Application();
            Excel.Workbook wb = exlApp.Workbooks.Open(filename, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
            //Ersters Worksheet öffnen
            Excel.Worksheet wc = (Excel.Worksheet)wb.Worksheets[1];
            //Hier dann auf die entsprechenden Spalten und Zeilen zugreifen
            Marshal.ReleaseComObject(wc);
            wb.Close(false, Type.Missing, Type.Missing);
            Marshal.ReleaseComObject(wb);
            exlApp.Quit();
            Marshal.ReleaseComObject(exlApp);
        }
        protected override void Render(HtmlTextWriter writer)
        {
        }
    }
}

AssemblyInfo.cs CODE:
Code:
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;


// General Information about an assembly is controlled through the following 
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Excelreader")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Axpo Informatik")]
[assembly: AssemblyProduct("Excelreader")]
[assembly: AssemblyCopyright("Copyright © Axpo Informatik 2007")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// Setting ComVisible to false makes the types in this assembly not visible 
// to COM components.  If you need to access a type in this assembly from 
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]

// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("caa22a23-e00a-4870-9b83-68cd9d7bc3b9")]

// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version 
//      Build Number
//      Revision
//
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

Verweise die mir angezeigt werden unter AKTUELL:
AjaxPro.2.dll
EclipseWebSolutions.CustomControls.dll
EclipseWebSolutions.DetePicker.dll
Microsoft Excel 11.0 Object Library
Microsoft.Sharepoint.dll (3 mal aber verschiedene Versionen)
Microsoft.Sharepoint.Portal.SingleSignon.dll
Schedule.dll
System.Web

Seht IHR einen Fehler? Ich leider nicht.

Hoffe ich nerve euch nicht schon *g*

Bei allen anderen Weparts war es kein Problem doch nun kommt Office und schon hab ich probleme:)