如何将 XLSB 转换为 XLSX:4 种实用方法

使用 Excel、在线工具、VBA 和 C# 将 XLSB 文件转换为 XLSX 的四种方法

XLSB 是 Microsoft Excel 支持的一种工作簿格式,但部分电子表格软件和数据处理工具对它的兼容性有限。如果需要将 XLSB 文件分享给使用其他软件的人,或者将文件导入其他应用程序,通常可以先将其转换为兼容性更广的 XLSX 格式。

本文介绍四种 XLSB 转 XLSX 的方法:使用 Excel 的另存为功能或在线工具转换单个文件,使用 VBA 自动转换指定文件,以及使用 C# 批量处理多个工作簿。

XLSB 转 XLSX:哪种方法更适合你?

不同方法的操作方式、使用条件和适用场景有所不同。可以先参考下表,选择适合自己需求的方式。

方法 适用场景 优点 局限性
Microsoft Excel 转换单个 XLSB 文件 原生支持两种格式;方便检查转换结果 需要安装桌面版 Excel;需手动操作
在线转换工具 偶尔需要快速转换文件 无需安装软件;操作简单 需要上传文件;复杂内容可能存在兼容性问题
VBA 宏 在 Excel 中自动转换指定文件 可以重复使用宏;直接在 Excel 中运行 需要 Windows 版 Excel,并进行基本的 VBA 设置
C# 在 .NET 应用程序中批量转换文件 无需安装 Excel;可以自动处理多个文件 需要 .NET 开发环境和相应的处理库

重要提醒: XLSX 格式无法保存 VBA 宏或 Excel 4.0 宏工作表。根据 Microsoft 官方的 Excel 文件格式说明,如果原 XLSB 文件中包含需要保留的宏,应考虑另存为 XLSM 格式,而不是 XLSX。

方法 1:使用 Excel“另存为”将 XLSB 转换为 XLSX

如果只需要转换一个 XLSB 文件,最直接的方式就是使用 Microsoft Excel 自带的另存为功能。你可以先检查工作簿的内容,再将其保存为 XLSX,无需安装第三方转换软件,也不需要上传文件。

操作步骤

  1. 打开 XLSB 文件。 在桌面版 Excel 中,选择 文件 > 打开 > 浏览,找到需要转换的 .xlsb 文件。如果文件以受保护的视图打开,请先确认文件来源可信,再点击启用编辑。

  2. 检查工作簿内容。 确认重要的工作表、公式、图表等内容显示正常。

  3. 打开另存为界面。 选择 文件 > 另存为 > 浏览。在 Windows 版 Excel 中,也可以直接按 F12。

  4. 选择 XLSX 格式。 在保存类型下拉列表中选择 Excel 工作簿 (*.xlsx),并输入文件名。

    Excel 另存为窗口中选择“Excel 工作簿 XLSX”作为保存格式

  5. 保存并检查转换结果。 点击保存,查看可能出现的兼容性提示。完成后,重新打开生成的 XLSX 文件,确认内容是否正常。

通过这种方式,原来的 XLSB 文件仍会保留,不会因为另存为 XLSX 而被直接替换。

方法 2:使用免费在线工具将 XLSB 转换为 XLSX

如果电脑上没有安装 Microsoft Excel,或者需要在 Linux、ChromeOS、手机等设备上转换 XLSB 文件,可以考虑使用在线转换工具。下面以 Vertopal 为例,介绍具体操作。

操作步骤

  1. 打开 Vertopal XLSB 转 XLSX 在线转换页面。

  2. 点击 Choose File(选择文件),上传需要转换的 XLSB 工作簿。未登录用户的单个文件上传上限为 50 MB,注册免费账户后可提高至 80 MB。具体限制以网站当前说明为准。。

    Vertopal XLSB 转 XLSX 页面中的 Choose File 文件上传入口

  3. 点击 Continue(继续),然后点击 Convert(转换) 开始处理。

  4. 下载转换后的 XLSX 文件,并使用 Excel 或其他兼容软件打开,检查文件内容。

    Vertopal XLSB 转 XLSX 转换完成后提供文件下载的页面

上传前请注意: 大多数在线转换工具需要将文件上传到第三方服务器。如果工作簿包含客户信息、财务数据或其他敏感内容,应先确认网站的数据处理方式是否符合你的要求。不同平台的文件大小限制和可用选项可能不同,复杂公式、图表或其他 Excel 功能也不一定能完全保留。

方法 3:使用 VBA 自动将 XLSB 转换为 XLSX

如果希望在 Excel 中通过运行宏来自动完成转换,而不是每次手动打开“另存为”,可以使用 VBA。下面的代码用于自动转换一个指定的 XLSB 文件,并非遍历文件夹进行批量处理。

VBA 转换代码

下面的宏通过 Excel 的 Workbook.SaveAs 方法将 XLSB 文件另存为 XLSX,同时保留原文件。

运行前,请根据实际情况修改输入和输出文件路径。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Sub ConvertXlsbToXlsx()
Dim sourcePath As String, outputPath As String
Dim wb As Workbook
Dim oldAlerts As Boolean
Dim oldSecurity As MsoAutomationSecurity

sourcePath = "C:\XLSB\Report.xlsb"
outputPath = "C:\XLSB\Report.xlsx"

oldAlerts = Application.DisplayAlerts
oldSecurity = Application.AutomationSecurity
On Error GoTo Failed

' 避免覆盖已存在的 XLSX 文件
If Dir(outputPath) <> "" Then
MsgBox "输出文件已存在:" & outputPath, vbExclamation
Exit Sub
End If

Application.DisplayAlerts = False
Application.AutomationSecurity = msoAutomationSecurityForceDisable

' 打开 XLSB 文件,并另存为 XLSX
Set wb = Workbooks.Open(Filename:=sourcePath, UpdateLinks:=0, ReadOnly:=True)
wb.SaveAs Filename:=outputPath, FileFormat:=xlOpenXMLWorkbook
MsgBox "转换完成:" & outputPath, vbInformation

CleanUp:
On Error Resume Next
If Not wb Is Nothing Then wb.Close SaveChanges:=False
Application.DisplayAlerts = oldAlerts
Application.AutomationSecurity = oldSecurity
Exit Sub

Failed:
MsgBox "转换失败:" & Err.Description, vbExclamation
Resume CleanUp
End Sub

如何运行 VBA 宏

  1. 在 Windows 版 Excel 中新建一个空白工作簿。
  2. 按 Alt + F11 打开 VBA 编辑器,选择 插入 > 模块,将上面的代码粘贴进去。
  3. 创建 C:\XLSB 文件夹,并将名为 Report.xlsb 的文件放入其中。如果实际文件名或存放位置不同,请相应修改代码中的 sourcePath 和 outputPath。
  4. 返回 Excel,按 Alt + F8,选择 ConvertXlsbToXlsx,然后点击运行。仅运行来源可信的宏。
  5. 打开生成的 C:\XLSB\Report.xlsx,检查转换结果。

如果需要以后继续使用这个宏,可以将存放 VBA 代码的工作簿另存为单独的 Excel 启用宏的工作簿(*.xlsm)。只运行一次宏时,并不要求必须先保存为 XLSM。

注意: 代码使用 Excel 的 AutomationSecurity 属性,在打开源文件时禁用其中的 VBA 宏,但仍可能出现 Excel 4.0 宏的安全提示。此外,代码会暂时关闭常规提示信息,因此即使转换完成,也应检查输出文件的内容和兼容性。

如果指定的 XLSX 文件已经存在,宏会停止运行,以免覆盖已有文件。再次运行前,可以更换输出文件名,或者先处理已有的目标文件。

方法 4:使用 C# 批量将 XLSB 转换为 XLSX

如果需要在 .NET 项目中定期转换大量工作簿,可以使用 C# 自动读取指定文件夹中的 XLSB 文件,并逐个保存为 XLSX,无需在运行环境中安装 Microsoft Excel。下面使用 Spire.XLS for .NET 实现这一过程。

步骤 1:安装 Spire.XLS for .NET

在 Visual Studio 中,选择 工具 > NuGet 包管理器 > 程序包管理器控制台,执行以下命令:

1
Install-Package Spire.XLS

也可以通过 NuGet 的管理 NuGet 程序包界面查找并安装 Spire.XLS。

步骤 2:批量转换 XLSB 文件

将需要转换的 XLSB 文件放入 C:\XLSB 文件夹。下面的程序会自动创建 C:\XLSX 输出文件夹,跳过已经存在的目标文件,并在单个文件处理失败时记录错误,继续处理其他文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
using System;
using System.IO;
using Spire.Xls;

class Program
{
static void Main()
{
string inputFolder = @"C:\XLSB";
string outputFolder = @"C:\XLSX";

if (!Directory.Exists(inputFolder))
{
Console.WriteLine("找不到源文件夹:" + inputFolder);
return;
}

Directory.CreateDirectory(outputFolder);

foreach (string inputFile in Directory.EnumerateFiles(inputFolder))
{
if (!string.Equals(Path.GetExtension(inputFile), ".xlsb",
StringComparison.OrdinalIgnoreCase))
continue;

string outputFile = Path.Combine(
outputFolder,
Path.GetFileNameWithoutExtension(inputFile) + ".xlsx");

if (File.Exists(outputFile))
{
Console.WriteLine("已跳过(文件已存在):" + outputFile);
continue;
}

Workbook workbook = null;
try
{
workbook = new Workbook();
workbook.LoadFromFile(inputFile);
workbook.SaveToFile(outputFile, ExcelVersion.Version2016);
Console.WriteLine("转换完成:" + Path.GetFileName(inputFile));
}
catch (Exception ex)
{
Console.WriteLine("转换失败:" + Path.GetFileName(inputFile)
+ " - " + ex.Message);
}
finally
{
if (workbook != null)
workbook.Dispose();
}
}
}
}

代码中的 Workbook.LoadFromFile() 用于加载源工作簿,SaveToFile() 用于将其保存为 XLSX。ExcelVersion.Version2016 指定输出工作簿的文件版本,并不表示必须安装 Excel 2016。

注意: Spire.XLS 评估版可能存在功能限制或在输出文件中添加评估提示。如需在评估时解除这些限制,可以申请临时许可证。

XLSB 与 XLSX 有什么区别?

XLSB 和 XLSX 都能保存工作表、公式、图表、单元格格式等常见 Excel 内容,主要区别在于文件内部的数据存储方式:

  • XLSB(Excel 二进制工作簿): 使用二进制结构存储工作簿数据。对于部分体积较大、结构复杂的工作簿,XLSB 可能具有更小的文件体积,以及更快的打开或保存速度。
  • XLSX(Excel 工作簿): 基于压缩的 XML 文件结构,也是 Excel 默认的工作簿格式。相比 XLSB,XLSX 通常能够被更多第三方电子表格应用和数据处理工具识别。

如果主要考虑与其他软件之间的兼容性,XLSX 通常更合适;如果工作簿较大,且主要在 Excel 中使用,保留 XLSB 格式也可能更实用。

需要注意: 直接把文件扩展名从 .xlsb 改为 .xlsx,并不会改变文件内部的存储格式,因此不能代替真正的格式转换。

XLSB 转 XLSX 后需要检查哪些内容?

文件能够成功打开,并不代表转换过程中所有内容都完全保留。尤其是使用第三方转换工具时,建议在分享或导入其他系统前,重点检查以下内容:

  1. 公式和计算结果: 查看重要公式、跨工作表引用及计算结果是否正常,留意 #REF!、#VALUE! 等错误。如有需要,可以查看 Excel 单元格中的公式,进一步检查公式表达式。
  2. 工作簿结构: 确认工作表名称、隐藏工作表及重要的定义名称(命名区域)是否保留。
  3. 图表及其他功能: 如果原文件包含图表、数据透视表、条件格式或数据连接,应逐项确认是否正常。
  4. 文件大小和兼容性: 转换后的 XLSX 文件可能比原 XLSB 文件更大。还应检查目标软件是否能够正确打开并使用它。

常见问题解答

Q1:受密码保护的 XLSB 文件可以转换为 XLSX 吗?

可以,但前提是你拥有打开文件所需的密码。使用 Excel 输入正确密码打开工作簿后,再通过另存为将其保存为 XLSX。转换完成后,建议检查新文件的保护设置是否符合需要。部分在线工具可能无法处理加密的工作簿。

Q2:可以只将 XLSB 文件中的某个工作表转换为 XLSX 吗?

可以。在 Excel 中,右键点击需要导出的工作表标签,选择移动或复制,在目标工作簿选项中选择**(新工作簿),勾选建立副本**,然后将新建的工作簿保存为 XLSX 即可。如果该工作表中的公式或图表引用了其他工作表的数据,需要特别检查这些引用是否受到影响。

Q3:将 XLSB 转成 XLSX 后,其他工作簿会自动改为引用新文件吗?

不会。 创建新的 XLSX 文件,不会自动修改其他工作簿中指向原 XLSB 文件的外部链接。

如果其他工作簿仍然引用原文件,可以打开相应工作簿,选择 数据 > 查询和连接 > 工作簿链接,在相关链接旁点击更多命令(…),选择更改源,再指定新的 XLSX 文件。具体界面可能因 Excel 版本而有所不同。

总结

如果只需要转换一个 XLSB 文件,使用 Excel 的另存为功能通常最简单;没有安装 Excel 时,可以考虑在线转换工具;如果想自动转换指定工作簿,可以使用 VBA;如果需要处理整个文件夹中的大量文件,C# 更适合批量转换。

无论选择哪种方式,建议在确认 XLSX 文件内容正常、可以被目标软件正确读取之前,保留原始 XLSB 文件。