Vorrei aprire il foglio di calcolo con la libreria di Excel COM. Se si aggiunge un riferimento alla libreria oggetta di Microsoft Excel, è possibile accedere all'interfaccia Com.
Aggiungi queste affermazioni utilizzando:
using Microsoft.Office.Interop;
using Microsoft.Office.Interop.Excel;
Poi si può leggere dal foglio di calcolo facendo qualcosa di simile:
private void GetData(string fileName, string tabName)
{
Workbook theWorkbook;
Application ExcelObj = null;
ExcelObj = new Application();
theWorkbook = ExcelObj.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);
Sheets sheets = theWorkbook.Worksheets;
Worksheet worksheet = (Worksheet)sheets[tabName];
Range range = worksheet.get_Range("A1:A1", Type.Missing);
string data = range.Text as string;
//
// TODO : store the data
//
theWorkbook.Close(false, fileName, null);
}
Questo codice avrebbe letto il contenuto della cella A1 in una stringa.
Uno dei motivi per cui si lavora con l'interfaccia COM di Excel è che è necessario accedere ai dati in un intervallo, anche se si desidera solo una cella. È possibile impostare l'intervallo in modo che sia un gruppo di celle, quindi è possibile scorrere la raccolta che restituisce per ottenere il contenuto di ogni cella.
Si consiglia inoltre di aggiungere un controllo/gestione degli errori sul nome del file e il nome della scheda.
C'è anche un modo per usare ODBC per leggere da Excel, ma il foglio di calcolo deve essere formattato in un certo modo. Devono esserci dati di intestazione nella riga 1. Ho trovato più facile usare l'interfaccia COM.
Una volta acquisiti i dati necessari, è possibile inserirli in un DataSet tipizzato. Quindi è possibile associare il set di dati a un DataGridView se si utilizza WinForms o un ListBox in WPF. Se si desidera salvare i dati in un formato XML, è possibile utilizzare la funzione WriteXml di DataSet per archiviare i dati in un file.
Hai solo bisogno di visualizzare i dati in formato tabellare o hai effettivamente bisogno del motore di rendering Excel? Si può semplicemente leggere il file excel e visualizzarlo in un DataGridView. In caso contrario, sarà necessario eseguire alcune operazioni OLE/COM (suppongo) –
Se è necessario il foglio Excel, è possibile inserire un controllo WebBrowser nel winform e caricare il tipo di contenuto come documento Excel. – jgallant
Qualche nuova opzione che è aumentata dal 2009? – PPC