簡體   English   中英

C#將.xlsx轉換為.xls

[英]C# Converting .xlsx to .xls

我使用ClosedXML.dll創建Excel文件,但是ClosedXML將excel文件保存為.xlsx,而我的客戶端PC只運行Office 2003,因此無法打開.xlsx文件,如何將.xlsx轉換為.xls?

任何建議將不勝感激。 謝謝大家。

如果可能,請讓您的客戶安裝Microsoft Office兼容包 ,這樣他們就可以在Office 2003中打開Office 2007格式的文檔。

http://www.microsoft.com/downloads下載MS Office兼容包。

您可以使用Excel c# 將XLSX轉換為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");

您可以嘗試使用NET Office( http://netoffice.codeplex.com/ ),它將xls轉換為xlsx,因此您可以將closedXML與文件一起使用

嘗試使用ExcelDataReaderExcelPlusPlus 它們是開源和良好的

幾天前我就此發布了一個問題。

注意這是一個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

使用.XlFileFormat.xlExcel7格式化excel 95文件。

ClosedXML.dll常見問題解答

它是否支持Excel 2003和以前的格式(.xls)? 不。 ClosedXML僅支持Excel 2007/2010格式(.xlsx)。

最后編輯於2011年5月16日下午7:45由MDeLeon編輯,版本1

sec_goat 7月19日下午5:54我不知道這是不是正確的地方,但這是我用於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();
}

希望這可以幫助 ;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM