我用ClosedXML.dll创建Excel文件,但ClosedXML将Excel文件的.xlsx和我的客户的PC只能运行Office 2003中,使他们无法打开.xlsx文件,我怎么能转换.xlsx转换成.xls?C#转换的.xlsx为.xls
任何建议将不胜感激。感谢大家。
我用ClosedXML.dll创建Excel文件,但ClosedXML将Excel文件的.xlsx和我的客户的PC只能运行Office 2003中,使他们无法打开.xlsx文件,我怎么能转换.xlsx转换成.xls?C#转换的.xlsx为.xls
任何建议将不胜感激。感谢大家。
让您的客户安装Microsoft Office Compatibility Pack,如果可能的话,这将让他们在Office 2003中
打开Office 2007格式的文档从http://www.microsoft.com/downloads下载MS Office兼容包。
为什么你会发布这个,当它已经很明显已经发布? – tomfanning
我编辑我的职务为其他人加入了他的答案,这是不存在我的屏幕上我张贴,但感谢让我知道。 – Derek
它支持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();
}
希望这有助于;)
这就是如何从.XLS转换为.XLSX。提问者问的是相反的。不过,使用Interop可能是合适的。但是,我假设(可能错误地)他们使用ClosedXML,因为他们不能使用互操作。 –
哎呀,对不起,我应该删除它吗? – Jook
您可以使用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");
如果您检查软件的网站有一个免费版本。 – 2014-09-23 08:27:05
确实。它将每张工作表限制为150行,每个工作簿最多5行,但它存在。总而言之,我保留我的-1,因为我仍然觉得应该在答案中说明这一点。 – Machado
尝试使用ExcelDataReader和ExcelPlusPlus。他们是开源和良好
我张贴对此问题仅仅在几天前。
注意这是一个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
你可以尝试网络办公(http://netoffice.codeplex.com/),它可以转换XLS到XLSX,所以你可以使用closedXML与文件
使用.XlFileFormat.xlExcel7格式化练成95个文件。
感谢这个! – jomsk1e