【问题标题】:Change Excel file Format ( from .xls to .xlsx) through vb通过 vb 更改 Excel 文件格式(从 .xls 到 .xlsx)
【发布时间】:2017-01-10 22:43:22
【问题描述】:
If FileUpload.HasFile Then

        Dim FileNameXlsx = Path.ChangeExtension(Path.GetFileName(FileUpload.PostedFile.FileName), ".xlsx")

        Dim pathOfUploadedCCP As String = Server.MapPath("~/Uploaded/Documents/TemporaryUploadedFileForCCP/") + FileNameXlsx

        FileUpload.SaveAs(pathOfUploadedCCP)

此代码仅更改扩展名,但我收到文件已损坏的错误。请帮助我:如何将文件格式更改为 excel 工作簿 (.xlsx)?

【问题讨论】:

  • 您可以将文件保存为 .xlsx,然后上传,然后删除吗? (抱歉,打错字了 .Xlsb)
  • 在上传之前我必须验证文件,因为我使用的是 SpreadsheetLight,所以我只想要 (.xlsx) 扩展名中的所有文件
  • 只是更改扩展名是行不通的。使用另存为并为 xlsx 指定 openxmlworkbook 格式。 msdn.microsoft.com/en-us/library/…

标签: excel vb.net


【解决方案1】:

参考下面的链接,这可能对你有帮助。

https://www.gemboxsoftware.com/spreadsheet/articles/convert-xls-xlsx-ods-csv-html-net

正如我在示例中看到的,您需要将他们的库包含在您的项目中。他们已经给出了示例,您可以使用下面的链接进行检查。

https://www.gemboxsoftware.com/spreadsheet/examples/c-sharp-convert-excel-to-pdf/404

【讨论】:

    【解决方案2】:

    XLS 和 XLSX 文件格式是不同的文件格式。您不能只更改扩展名。下面的例子是一个极端的类比,但是假设您要将文本文件(TXT 扩展名)更改为图像文件(PNG 扩展名)。

    当您尝试打开文件时,MS Excel 识别出无效格式,这就是您得到的错误。

    您必须将 xls 文件转换为 xlsx 文件格式。

    您可以使用像 EasyXLS 这样的 Excel 库来实现此目标:

    Dim workbook As New ExcelDocument
    'Load the xls file
    workbook.easy_LoadXLSFile(FileNameXls)
    'Convert the xls file to xlsx file
    workbook.easy_WriteXLSXFile(FileNameXlsx)
    

    【讨论】:

      【解决方案3】:

      你能做到吗?

      Dim myFiles As String()
      myFiles = IO.Directory.GetFiles("<Folder Location of thge File>", "*.xls")
      Dim newFilePath As String
      For Each filepath As String In myFiles
      newFilePath = filepath.Replace("<Folder Location of thge File>", ".xlsx")
      System.IO.File.Move(filepath, newFilePath)
      Next
      End Sub
      

      如果程序发现.xls的扩展名,它将替换文件夹中文件的文件扩展名

      如果上面的代码不起作用,试试这个。

      Dim Path as String
      Path = "C:\Programs\And_So_On\"
      Dim Final As String
      Final = Path & "YourFile.xlsx"
      
      YourWorkBook.SaveAs(Final)
      

      【讨论】:

      • 我不知道为什么如果它不工作需要否决答案顺便看看上面更新的代码
      • @OP 已经有代码来更改文件扩展名,这不是他们面临的问题。他们还需要转换实际的文件格式,因为在VB 中仅更改文件扩展名不会这样做。
      • @ShadowFiend 您的代码只会更改文件的扩展名,但我也必须更改格式,只是更改扩展名会导致文件损坏
      猜你喜欢
      • 2014-08-11
      • 2023-03-29
      • 1970-01-01
      • 2016-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多