Domanda

Ho un dataset che ho modificato in un documento xml e poi usato un foglio xsl per trasformare in Excel in un formato xml per permettere i dati per essere aperto a livello di programmazione da mia applicazione.Ho incontrato due problemi con questo:

  1. Excel non è l'impostazione predefinita di Windows applicazione per aprire i file di Excel, quindi in caso di Programma.Start("xmlfilename.xml") viene eseguito, CIOÈ è aperta e il file XML non è molto leggibile.

  2. Se si rinomina il file .xlsx, si riceve un messaggio di avviso "Questo non è un file di excel, volete continuare".Questo non è l'ideale per i clienti.

Idealmente, vorrei Windows per aprire il file in Excel senza modificare il sistema operativo predefinito impostazione per l'apertura di file di Excel.Ufficio di interoperabilità è una possibilità, ma mi sembra un po ' eccessivo per questo tipo di applicazione.Qualcuno ha qualche idea per fare questo lavoro?

La soluzione è in .Net/C#, ma sono aperto ad altre possibilità di creare una soluzione pulita.

È stato utile?

Soluzione

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

Detto questo, si continua a ottenere la finestra di messaggio.Suppongo che si potrebbe utilizzare l'Interoperabilità, ma non sono sicuro di quanto bene funzionerà per voi.

Altri suggerimenti

Se si inserisce il seguente in 2 ° linea di XML che indica a Windows di aprire con Excel

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

Che cosa succede se si salva il file come un xlsx, l'estensione XML di Excel?

Come Sam accennato, xlsx file con estensione è probabilmente una buona strada da percorrere.Tuttavia, non c'è più solo il salvataggio del file xml come formato xlsx.Xlsx è in realtà un file zip con un sacco di file xml all'interno di cartelle.Ho trovato qualche buon esempio di codice qui che sembra dare qualche spiegazioni anche se non ho personalmente dato una prova.

Scuse in anticipo per il collegamento di una libreria di terze parti, e so che non è gratis, ma io uso FlexCel Studio dal Software TMS.Se stai cercando di fare di più che semplicemente eseguire il dump dei dati (formattazione, dinamico e cross-schede, ecc) funziona molto bene.Siamo in grado di generare centinaia di segnalazioni di una settimana di utilizzo.

FlexCel accetta fortemente tipizzato set di dati, è possibile raggruppare i dati in base ai rapporti, e generato il file di Excel sembra così molto più pulito di quello che si può ottenere da un Crystal Report esportazione in formato excel.Ho fatto il report crystal cosa, e l'automazione OLE cosa.FlexCel è un affare a $125 UE.

Spero che questo aiuta.

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));
            }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top