2

ClosedXML.dllを使用してExcelファイルを作成しましたが、ClosedXMLはExcelファイルを.xlsxとして保存し、クライアントのPCはOffice 2003のみを実行するため、.xlsxファイルを開くことができません。その.xlsxを.xlsに変換するにはどうすればよいですか。

任意の推奨事項をいただければ幸いです。みなさん、ありがとうございました。

4

8 に答える 8

5

可能であれば、クライアントにMicrosoft Office互換性パックをインストールするように依頼します。これにより、Office2003でOffice2007形式のドキュメントを開くことができます。

于 2012-09-13T08:03:31.700 に答える
2

MS Office Compatibility Pack をhttp://www.microsoft.com/downloadsからダウンロードします。

于 2012-09-13T08:04:58.173 に答える
1

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");
于 2012-09-13T08:08:02.933 に答える
0

.XlFileFormat.xlExcel7 を使用して、Excel 95 ファイルをフォーマットします。

于 2015-12-01T12:30:50.697 に答える
0

ExcelDataReaderExcelPlusPlusを使用してみてください。それらはオープンソースであり、優れています

于 2012-09-13T08:20:40.357 に答える
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
于 2012-09-13T09:30:35.437 に答える
-1

ClosedXML.dllのFAQ から:

Excel 2003 以前の形式 (.xls) はサポートされていますか? いいえ。ClosedXML は、Excel 2007/2010 形式 (.xlsx) のみをサポートします。

最終編集 2011 年 5 月 16 日午後 7 時 45 分、MDeLeon、バージョン 1

sec_goat Jul 19 at 5:54 PM これが適切な場所かどうかはわかりませんが、これは 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();
}

お役に立てれば ;)

于 2012-09-13T08:06:51.740 に答える