Frage

Ich habe eine Datenmenge, die ich in ein XML-Dokument geändert habe, und verwenden dann ein xsl Blatt in ein Excel-XML-Format umzuwandeln, um den Daten zu ermöglichen programmatisch aus meiner Anwendung zu öffnen. Ich habe in zwei Probleme mit diesem Lauf:

  1. Excel ist nicht die Standard-Windows-Anwendung Excel-Dateien zu öffnen, also wenn Program.Start ( "xmlfilename.xml") ausgeführt wird, IE geöffnet und die XML-Datei ist nicht sehr gut lesbar.

  2. Wenn Sie die Datei umbenennen, um XLSX, eine Warnung erhalten: „Das ist nicht eine Excel-Datei, möchten Sie fortsetzen“. Das ist nicht ideal für die Kunden.

Idealerweise würde ich von Windows wie die Datei in Excel zu öffnen, ohne die Standard-OS Einstellung zu modifizieren zum Öffnen von Excel-Dateien. Office-Interop ist eine Möglichkeit, aber scheint ein wenig übertrieben für diese Anwendung. Hat jemand irgendwelche Ideen haben, um diese Arbeit zu machen?

Die Lösung ist in .NET / C #, aber ich bin auf andere Möglichkeiten offen eine saubere Lösung zu erstellen.

War es hilfreich?

Lösung

Process.Start(@"C:\Program Files\Microsoft Office\Officexx\excel.exe", "yourfile.xml");

Dass gesagt wird, werden Sie noch das Meldungsfeld bekommen. Ich nehme an, dass Sie die Interop verwenden könnte, aber ich bin nicht sicher, wie gut es für Sie arbeiten.

Andere Tipps

Wenn Sie die folgende in die 2. Zeile Ihres XML legen Sie diese Fenster mit Excel öffnen leitet

<?mso-application progid="Excel.Sheet"?>

Was passiert, wenn Sie die Datei als xlsx speichern, die Erweiterung für XML-Excel?

Als Sam erwähnt, ist die xlsx Dateierweiterung ist wahrscheinlich eine gute Strecke zu gehen. Allerdings gibt es mehr beteiligt als nur die XML-Datei als xlsx zu speichern. Ein xlsx ist eigentlich eine Zip-Datei mit einer Reihe von XML-Dateien in Ordnern. Ich fand einige gute Beispielcode hier die einige gute Erklärungen, obwohl ich haven zu geben scheint‘ t persönlich es einen Versuch gegeben.

Apologies im Voraus für einen Dritten Bibliothek anschließen, und ich weiß, es ist nicht kostenlos, aber ich benutze FLEXCEL Studio von TMS Software. Wenn Sie schauen, um mehr zu tun, als nur Daten-Dump (Formatierung, dynamische Kreuztabellen usw.) funktioniert es sehr gut. Wir generieren Hunderte von Berichten in der Woche es zu benutzen.

FLEXCEL akzeptiert stark typisierte Datasets, kann es Gruppendaten nach Beziehungen, und die erzeugte Excel-Datei sieht so viel sauberer als das, was man von einem Crystal Reports Export von Excel zu erhalten. Ich habe die Crystal Reports Sache, und die OLE-Automatisierung getan. FLEXCEL ist ein stehlen bei $ 125 EU.

Hope, das hilft.

OpenXML in MSDN - http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.workbooks.openxml (v = office.11) aspx

using Excel = Microsoft.Office.Interop.Excel;

string workbookPath= @"C:\temp\Results_2013Apr02_110133_6692.xml";

            this.lblResultFile.Text = string.Format(@" File:{0}",workbookPath);
            if (File.Exists(workbookPath))
            {
                Excel.Application excelApp = new Excel.Application();
                excelApp.Visible = true;
                Excel.Workbook excelWorkbook = excelApp.Workbooks.OpenXML(workbookPath, Type.Missing, Excel.XlXmlLoadOption.xlXmlLoadPromptUser);
            }
            else
            {
                MessageBox.Show(String.Format("File:{0} does not exists", workbookPath));
            }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top