2016-09-21 3 views
0

Ich verwendete OleDb zum Importieren von Excel-Datei, die 2000 Spalten hat. Mit diesem Code kann ich nur 255 Spalten in meiner DataTable haben. Ich möchte einen anderen Weg oder, wenn möglich, 2000 Spalten zu meiner DataTable bekommen.Importieren von Excel mit 2000 Spalten

DataTable dtExcelRecords = new DataTable(); 

using (OleDbConnection con = new OleDbConnection(connectionString)) 
{ 

     con.Open(); 
     DataTable dtSheet = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); 
     List<string> listSheet = new List<string>(); 
     foreach (DataRow drSheet in dtSheet.Rows) 
     { 
      if (drSheet["TABLE_NAME"].ToString().Contains("$")) 
       { 
       listSheet.Add(drSheet["TABLE_NAME"].ToString()); 
       } 
     } 

     string workSheetName = listSheet.FirstOrDefault(x => x.Contains(cCommon.sFDDetailsWorkSheetName)); 
     OleDbCommand cmd = new OleDbCommand(string.Format("SELECT * FROM [{0}]", workSheetName.Trim()), con); 
     cmd.CommandType = System.Data.CommandType.Text; 
     OleDbDataAdapter dAdapter = new OleDbDataAdapter(cmd); 
     dAdapter.SelectCommand = cmd; 
     dAdapter.Fill(dtExcelRecords); 
     } 
+0

Anstatt Datentabelle versuchen Sie, XML zu verwenden. –

+0

Wie bekomme ich Excel-Datei zu XML-Objekt ohne Verwendung von DataTable @PareshJ – arvind

+0

Sie müssen Schleife hinzufügen, um jede Spalte und ihre Daten zu erhalten. Ich kenne seinen langwierigen Prozess, wird aber definitiv funktionieren. –

Antwort

1

Die Verwendung von OleDb für den Zugriff auf Excel ist ein möglicher Weg, aber nicht der beste. Ich schlage vor, Bibliotheken von Drittanbietern für den Import aus Excel in Betracht zu ziehen.

Es gibt zwei sehr zu empfehlen:

  • NPOI, die eine .NET-Port von POI ist: Java API für MS Dokumente
  • ClosedXML, die ein Wrapper oben auf OpenXML, das ein Microsoft offen -Quellenbibliothek für den Zugriff auf Excel-Tabellen

Beide sind gut und werden den Job erledigen. Darüber hinaus sind sie kostenlos und erfordern keine Installation von MS Office auf dem Computer.

Verwandte Themen