126 messaggi dal 14 aprile 2006
Salve, devo leggere un file excel molto complesso formato da molte formule,
ho utilizzato oleDb, e funziona bene con excel semplici, ma quando gli passo questo file molto complesso, alcune celle me le valorizza vuote, come se nel file excel non ci sia valore. questo spesso accade su celle che sono state valorizzate, con delle formule excel.

codice:
excel contiene il percorso del file excel
foglio contiene il nome del foglio excel.

string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + excel + ";Extended Properties=Excel 8.0;";

OleDbConnection conn = new OleDbConnection(strConn);
string sql = "SELECT * FROM [" + foglio + "$]";
OleDbCommand cmd = new OleDbCommand(sql, conn);
System.Data.DataTable dt = new System.Data.DataTable();

conn.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter(sql, conn);
adapter.Fill(dt);
return dt;
301 messaggi dal 31 maggio 2006
Il problema potrebbe essere causato da un formato excel non compatibile, mi spiego, nelle varie versioni di excel sono state aggiunte nuove funzionalità (formule o altro) non compatibili.

le seguenti righe ti permettono di accedere a file excel 2003 e excel 2007, come potrai notare cambia non solo 'Extended Properties' ma anche il Provider

  Private Function ExcelConnectionStringV8(ByVal ExcelFilePath As String) As String
    Return String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";", ExcelFilePath)
  End Function

  Private Function ExcelConnectionStringV12(ByVal ExcelFilePath As String) As String
    Return String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 12.0;HDR=YES"";", ExcelFilePath)
  End Function



Io ho avuto alcuni problemi anche con la lingua, perchè le formule sono tradotte (formule in italiano non venivano riconosciute)

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.