Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Read Excel from .net

Îåêßíçóå áðü ôï ìÝëïò gmlogic. Τελευταία δημοσίευση από το μέλος gmlogic στις 18-12-2005, 20:22. Υπάρχουν 9 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  16-12-2005, 11:03 8026

    Geeked [8-|] Read Excel from .net

    Προσπαθώ να ανοίξω ενα xls

    και παίρνω το παρακάτω Exception

    Dim wb As Excel.Workbook

    wb = New Excel.Workbook

    wb.Application.Workbooks.Open(xlsPath)

    ------------------------------------------------

    'System.Runtime.InteropServices.COMException'

    Υποθέτω οτι κάτι παίζει  με τα InteropServices

    Που μπορώ να τα  βρώ και εαν είναι Free.

    Ευχαριστώ πολύ

    George.M

     


    George Matzouranis
  •  16-12-2005, 11:11 8028 σε απάντηση της 8026

    Απ: Read Excel from .net

    Δεν τα βρίσκεις κάπου, είναι μέρος του .NET Framework.
    Βάλε ένα Try...Catch για να πιάσεις το λάθος και να δεις λεπτομέρειες και πες μας, για να δούμε πιο συγκεκριμένα τι συμβαίνει....
    Vir prudens non contra ventum mingit
  •  16-12-2005, 12:02 8034 σε απάντηση της 8026

    Απ: Read Excel from .net

    Οτα τρέχει το
    wb = New Excel.Workbook

    παίρνω

    Generic Exception Handler: System.Runtime.InteropServices.COMException (0x80040154): Το αντικείμενο COM με CLSID {00020819-0000-0000-C000-000000000046} είτε δεν είναι έγκυρο είτε δεν έχει καταχωρηθεί.
    at GmPay.GmPay01.DataGrid1_LOAD() in D:\Gmapps.NET\GmPay\GmPay01.vb:line 145

    George Matzouranis
  •  16-12-2005, 12:24 8040 σε απάντηση της 8034

    Απ: Read Excel from .net

    Στο μηχάνημα που τρέχει το πρόγραμμα είναι εγκατεστημένο το Excel; Είναι η ίδια έκδοση με αυτή που έχει αναπτυχτεί το πρόγραμμα ή παλαιότερη/νεότερη; Έχει γίνει πλήρη εγκατάσταση ή η default;

     

    George J.

     


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  16-12-2005, 13:00 8042 σε απάντηση της 8026

    Απ: Read Excel from .net

    Δεν μπορείς να δημιουργήσεις ένα αντικείμενο Excel.WorkBook. Πρέπει πρώτα να δημιουργήσεις ένα αντικείμενο Excel.Application και μετά να καλέσεις την μέθοδο WorkBooks.Open όπως φαίνεται παρακάτω:

    Dim ExcelApp As New Excel.Application
    Dim ExcelWB As Excel.Workbook = ExcelApp.Workbooks.Open(XLSFile)


    Πάντως, αν το μόνο που θέλεις είναι να διαβάσεις τα περιεχόμενα ένος αρχείου xls μπορείς να το ανοίξεις σαν datasource μέσω του Jet OLEDB Provider. Δες το How To Use ADO.NET to Retrieve and Modify Records in an Excel Workbook With Visual Basic .NET

     


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  16-12-2005, 13:01 8043 σε απάντηση της 8026

    Απ: Read Excel from .net

    Στο Reference Properties εχω

    NAME:Interop.Excel
    Description:Microsoft Excel 9.0 Object Library
    Version:1.3

    Εχω to Office 2003

    George Matzouranis
  •  16-12-2005, 13:49 8044 σε απάντηση της 8026

    Απ: Read Excel from .net

    Παναγιώτη με βοήθησες αρκετά
    Αν μπορειίς να μου πεις πως οταν
    Dim ExcelWB As Excel.Workbook = ExcelApp.Workbooks.Open(XLSFile)
    Θα δω ποιά Sheets υπαρχουν για να δώσω δυνατότα επιλογής
    Ευχαριστώ

    George Matzouranis
  •  16-12-2005, 15:28 8049 σε απάντηση της 8026

    Απ: Read Excel from .net

    Δεν ξέρω τι ακριβώς δουλεύεις, απλά αναφέρω ότι μπορείς να δουλέψεις και με το excel χωρίς να χρησιμοποιήσεις το Excel.Application αλλά να παίξεις με oleDBConnection πχ:

    Dim connectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FileName & ";Extended Properties=""Excel 8.0;HDR=No;IMEX=1"""
    Dim dbConnection As New OleDbConnection(connectionString)

    Dim queryString As String = "SELECT * FROM [sheetName$]"
    Dim dbCommand As New OleDbCommand
    Dim dataSet As New DataSet
    Dim dataAdapter As New OleDbDataAdapter

    dbCommand.CommandText = queryString
    dbCommand.Connection = dbConnection
    dataAdapter.SelectCommand = dbCommand
    dataAdapter.Fill(dataSet, "myTable")
  •  16-12-2005, 15:35 8050 σε απάντηση της 8026

    Απ: Read Excel from .net

    Θέλω να βρίσκω πρώτα το [sheetName$] και μετά να εφαρμόσω τα select κλπ
    George Matzouranis
  •  18-12-2005, 20:22 8081 σε απάντηση της 8026

    Απ: Read Excel from .net

    --------Επιλέγω το .xls Βρίσκω πιό φύλλο θέλω
    Dim ExcelApp As New Excel.Application
    Dim ExcelWB As Excel.Workbook = ExcelApp.Workbooks.Open(xlsPath)
    Dim ThisWorksheet As New Excel.Worksheet
    Dim RCount As Integer
    For RCount = 1 To ExcelWB.Worksheets.Count
    ThisWorksheet = ExcelWB.Worksheets(RCount)
    Console.WriteLine(ThisWorksheet.Name)
    Next
    '--------Και μετά Select κλπ
    Dim m_daLookUp As OleDb.OleDbDataAdapter
    Dim m_dsLookUp As DataSet
    Dim sConnectionString As String
    sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=" & xlsPath & _
    ";Extended Properties=Excel 8.0;"
    ThisWorksheet = ExcelWB.Worksheets(1)
    m_dsLookUp = New DataSet
    m_daLookUp = New OleDb.OleDbDataAdapter( _
    "select * from [" & ThisWorksheet.Name & "$]", sConnectionString)
    -----------------------------------
    Ok αυτό ζητούσα
    Σας ευχαριστώ όλους

    George Matzouranis
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems