XML til Excel (2007) ideer ved hjelp av Windows XP, og C # .Net

stemmer
2

Jeg har et datasett som jeg har blitt modifisert til et XML-dokument og deretter anvendes en xsl ark for å transformere til en Excel XML-format for å tillate data å bli åpnet auto fra bruker. Jeg har kjørt inn to problemer med dette:

  1. Excel er ikke standard Windows-program for å åpne Excel-filer, derfor når Program.Start ( xmlfilename.xml) er kjørt, er IE åpnes og XML-filen er ikke veldig lesbart.

  2. Hvis du endrer navn på filen til XLSX, får du en advarsel: Dette er ikke en Excel-fil, vil du ønsker å fortsette. Dette er ikke ideelt for kundene.

Ideelt sett vil jeg gjerne Windows for å åpne filen i Excel uten å endre standard OS innstillingen for å åpne Excel-filer. Kontor Interop er en mulighet, men virker som litt overkill for dette programmet. Har noen noen ideer for å gjøre dette arbeidet?

Løsningen er i .Net / C #, men jeg er åpen for andre muligheter for å lage en ren løsning.

Publisert på 16/09/2008 klokken 21:10
kilden bruker
På andre språk...                            


6 svar

stemmer
1

Hva om du lagre filen som en xlsx, utvidelse for XML-Excel?

Svarte 16/09/2008 kl. 21:12
kilden bruker

stemmer
1

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

Når det er sagt, vil du fortsatt få meldingsboksen. Jeg antar at du kan bruke Interop, men jeg er ikke sikker på hvor godt det vil fungere for deg.

Svarte 16/09/2008 kl. 21:19
kilden bruker

stemmer
0

Som Sam nevnt, XLSX filtypen sannsynligvis en god rute til å gå. Men det er mer involvert enn bare å lagre xml filen som xlsx. En xlsx er faktisk en zip-fil med en haug med XML-filer i mapper. Jeg fant noen gode eksempelkode her som synes å gi noen gode forklaringer selv om jeg ikke har personlig gitt det et forsøk.

Svarte 16/09/2008 kl. 21:21
kilden bruker

stemmer
0

Unnskyldninger på forhånd for å koble en tredjepart bibliotek og jeg vet det er ikke gratis, men jeg bruker FlexCel Studio fra TMS Software. Hvis du er ute etter å gjøre mer enn bare å dumpe data (formatering, dynamiske kryss faner, etc) fungerer det veldig bra. Vi genererer hundrevis av rapporter i uken bruker den.

FlexCel aksepterer sterke skrevet datasett, det kan gruppere data i henhold til relasjoner, og den genererte Excel-filen ser så mye renere enn hva du kan få fra en Crystal Reports excel eksport. Jeg har gjort det krystall rapporter ting, og OLE automasjon ting. FlexCel er en stjele på $ 125 EU.

Svarte 16/09/2008 kl. 23:05
kilden bruker

stemmer
4

Hvis du setter inn følgende i andre linjen i XML dirigerer Windows å åpne med Excel

<?mso-application progid="Excel.Sheet"?>
Svarte 17/09/2008 kl. 10:51
kilden bruker

stemmer
0

Håper dette hjelper.

OpenXML i 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));
            }
Svarte 02/04/2013 kl. 17:57
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more