[英]XML to Excel (2007) Ideas using Windows XP, and C#.Net
我有一個數據集,我已將其修改為xml文檔,然后使用xsl工作表將其轉換為Excel xml格式,以允許從應用程序以編程方式打開數據。 我遇到了兩個問題:
Excel不是打開Excel文件的默認Windows應用程序,因此,運行Program.Start(“ xmlfilename.xml”)時,將打開IE,並且XML文件的可讀性不高。
如果將文件重命名為.xlsx,則會收到警告,“這不是excel文件,您要繼續嗎”。 這對於客戶而言並不理想。
理想情況下,我希望Windows在Excel中打開文件而無需修改用於打開Excel文件的默認操作系統設置。 Office互操作是可能的,但對於此應用程序似乎有點過大。 有誰有任何想法使這項工作嗎?
該解決方案在.Net / C#中,但是我對創建干凈解決方案的其他可能性持開放態度。
如果將以下內容插入XML的第二行,它將指示Windows使用Excel打開
<?mso-application progid="Excel.Sheet"?>
如果將文件另存為XML-Excel的擴展名xlsx,該怎么辦?
Process.Start(@"C:\Program Files\Microsoft Office\Officexx\excel.exe", "yourfile.xml");
話雖如此,您仍然會收到消息框。 我想您可以使用Interop,但是我不確定它對您的效果如何。
希望這可以幫助。
MSDN中的OpenXML- http://msdn.microsoft.com/zh-cn/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));
}
預先為插入第三方庫而道歉,我知道它不是免費的,但是我使用TMS Software的FlexCel Studio 。 如果您想做的不僅僅是轉儲數據(格式設置,動態交叉表等),它會很好地工作。 我們每周使用它生成數百份報告。
FlexCel接受強類型的數據集,它可以根據關系對數據進行分組,並且生成的Excel文件看起來比從Crystal Reports excel導出中獲得的文件干凈得多。 我已經完成了Crystal Reports和OLE自動化的工作。 FlexCel的價格為125美元(歐盟)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.