2012-09-13 167 views
2

我用ClosedXML.dll创建Excel文件,但ClosedXML将Excel文件的.xlsx和我的客户的PC只能运行Office 2003中,使他们无法打开.xlsx文件,我怎么能转换.xlsx转换成.xls?C#转换的.xlsx为.xls

任何建议将不胜感激。感谢大家。

回答

2

打开Office 2007格式的文档从http://www.microsoft.com/downloads下载MS Office兼容包。

+3

为什么你会发布这个,当它已经很明显已经发布? – tomfanning

+0

我编辑我的职务为其他人加入了他的答案,这是不存在我的屏幕上我张贴,但感谢让我知道。 – Derek

-1

FAQ of ClosedXML.dll

它支持Excel 2003和之前的格式(.xls的)?不。 ClosedXML 仅支持Excel 2007/2010格式(.xlsx)。

最后在下午5时54分编辑2011年5月16日7:45 PM由MDeLeon,版本1

sec_goat 7月19日,我不知道这是否是正确的地方, 但是这是我使用的解决方法为xls文件。我在 Interop.Excel中打开它们并将它们保存为较新的文件类型。这不是最优雅的 ,但它至少让人们知道他们能做什么。

public void Convert(String filesFolder) 
{ 
    files = Directory.GetFiles(filesFolder); 

    var app = new Microsoft.Office.Interop.Excel.Application(); 
    var wb = app.Workbooks.Open(file); 
    wb.SaveAs(Filename: file + "x", FileFormat: Microsoft.Office.Interop.Excel.XlFileFormat.xlOpenXMLWorkbook); 
    wb.Close(); 
    app.Quit(); 
} 

希望这有助于;)

+0

这就是如何从.XLS转换为.XLSX。提问者问的是相反的。不过,使用Interop可能是合适的。但是,我假设(可能错误地)他们使用ClosedXML,因为他们不能使用互操作。 –

+0

哎呀,对不起,我应该删除它吗? – Jook

1

您可以使用Excel c#Convert XLSX to XLS

有了这样的代码:

// Create new XLSX file. 
var xlsxFile = new ExcelFile(); 

// Load data from XLSX file. 
xlsxFile.LoadXlsx(fileName + ".xls", XlsxOptions.PreserveMakeCopy); 

// Save XLSX file to XLS file. 
xlsxFile.SaveXls(fileName + ".xls"); 
+0

如果您检查软件的网站有一个免费版本。 – 2014-09-23 08:27:05

+0

确实。它将每张工作表限制为150行,每个工作簿最多5行,但它存在。总而言之,我保留我的-1,因为我仍然觉得应该在答案中说明这一点。 – Machado

0

我张贴对此问题仅仅在几天前。

注意这是一个vba解决方案。

这遍历文件夹打开反过来每个工作簿,并将其保存在.xls格式。只需将标记为C:xxx的路径更改为.xlsx文件的位置即可。它避免了必须要求最终用户做一些事情来打开你的产品,并以我的经验,如果你有大量的用户,您将无法一些或不愿安装兼容包。

Option Explicit 
Sub Convert_to972003() 
    Dim orgwb As Workbook 
    Dim mypath As String, strfilename As String 
    Dim nname As String 

    '--> Error Handling 
    On Error GoTo WhatHappened 

    '--> Disable Alerts 
    With Application 
     .DisplayAlerts = False 
     .ScreenUpdating = False 
    End With 

    '--> Specify location of workbooks 
    mypath = "C:\xxx" 
    strfilename = Dir(mypath & "\*.xlsx", vbNormal) 

    '--> Check the specified folder contains files 
    If Len(strfilename) = 0 Then Exit Sub 

    '--> Start Loop, end when last file reached 
    Do Until strfilename = "" 

    '--> Open a workbook 
     Set orgwb = Application.Workbooks.Open _ 
     (mypath & "\" & strfilename) 

     '--> Create new Filename, Save in new File Format and Close 
     nname = Replace(strfilename, ".xlsx", ".xls") 
     orgwb.SaveAs mypath & "\" & nname, FileFormat:=xlExcel8 
     orgwb.Close 
     strfilename = Dir() 
    Loop 

    '--> Enable Alerts 
    With Application 
     .DisplayAlerts = True 
     .ScreenUpdating = True 
    End With 

Exit Sub 

WhatHappened: MsgBox Err.Description 

End Sub 
0

使用.XlFileFormat.xlExcel7格式化练成95个文件。

相关问题