Frage

Ich habe ein 3rd Party-Tool, das eine XML-Tabelle (* .xls) erzeugt. Ich habe ein anderes Programm, das diese spreasheet liest und verarbeitet es. Der Inhalt der erzeugten XML-Kalkulationstabelle ist eine Tabelle mit 5 Spalten und mein Programm läuft Auswahlabfragen auf sich. Ich bin ein Problem konfrontiert, während eine Verbindung mit der erzeugten Kalkulationstabelle zu öffnen. Er sagt: „{“ Externe Tabelle nicht im erwarteten Format ist. „}“. Meine Ansch Zeichenfolge "Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" + excelFileName + "; Erweiterte Eigenschaften = \" Excel 8.0; HDR = YES; \ ""; Muss ich etwas zu dieser Zeichenfolge ändern? Ich habe versucht, einen Datensatz und ruft DataSet.ReadXML (excelFileName) verwendet wird; Aber der Datensatz doesnt meine Tabelle enthalten. Alle mögliche Eingaben, wie eine XML-Tabelle zu lesen?

Vielen Dank für Ihre Zeit, CS

War es hilfreich?

Lösung

Sieht aus wie die Verbindungszeichenfolge für ältere Binärformat Excel-Dateien eingestellt ist. Sie wollen eine andere Verbindungszeichenfolge für XML. Wenn Sie über die neuen Excel 2007 XML-Dateien sprechen, dann müssen Sie diese Verbindungszeichenfolge rel="nofollow:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES";

Wenn Sie über das ältere XML-Format sind im Gespräch, die in Excel 2003 kamen, dann bin ich nicht sicher, ob es eine Verbindungszeichenfolge ist. In diesem Fall ist Ihre beste Wette in Excel zu öffnen und dann als xls-Datei zu speichern, und verwenden Sie die Verbindungszeichenfolge Sie ursprünglich verwendet haben.

By the way, ConnectionStrings.com ist ein großer Platz, all alte Verbindungszeichenfolge zu finden, die Sie benötigen, Zugriff auf alle verschiedenen Arten von Daten.

Beachten Sie auch, wie andere bereits festgestellt haben, dass, wenn es sich um eine XML-Datei ist, ist es nicht eine xls-Dateierweiterung haben sollte, sollte es entweder .xml oder .xlsx.

Andere Tipps

               Excel.Workbook wb1;

            Excel.Application wb2 = new Excel.Application();

            wb2.DisplayAlerts = false;
                           wb1 = (Excel.Workbook)wb2.Workbooks._Open(filename);

            if (wb1.FileFormat == Excel.XlFileFormat.xlXMLSpreadsheet)
            {
                                    wb1.SaveAs(filename, Excel.XlFileFormat.xlExcel12, Type.Missing, Type.Missing,
                        false, false, Excel.XlSaveAsAccessMode.xlNoChange,
                       Excel.XlSaveConflictResolution.xlOtherSessionChanges, false);
            }
            else
            {
                wb2.Workbooks.Close();

            }

Sie können die Excel-Kalkulationstabelle 2007 Format konvertieren und dann LinQ verwenden, um die Blätter Abfrage all Open-Source-Anbieter oder OleDB verwendet wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top