跳到正文

将ODS转换为XLSX

把LibreOffice或OpenOffice的.ods文件转成Excel工作簿——每个工作表、公式、数字格式、颜色、合并单元格和图表都完整保留。

  • 转换完成后立即删除
  • 加密传输,立即删除
  • 无需注册,无水印

使用方法

1

添加ODS文件

将一个或多个.ods文件拖放到页面上,或点击选择文件。

2

转换

只需点一下——每个工作簿都会逐个工作表重建为Excel自己的格式。

3

下载

每个文件得到一个.xlsx,也可以打包成一个ZIP一起下载。

两种几乎一致的ZIP压缩XML格式

ODS和XLSX在结构上很相似——两者都是ZIP压缩包,里面是描述工作表、单元格、样式和关联关系的XML——所以绝大部分内容都能原样转过去。值、数字格式、字体、颜色、边框、合并单元格、列宽、冻结窗格、条件格式、数据验证、批注、图表和图片在两种格式中都有直接的对应项,隐藏的工作表也仍保持隐藏。

两者真正的差异在于公式,而且差在名称上,而不是数学上。两种格式都把公式存成文本;各自按照自己的应用程序来拼写函数名。转换时会把函数写成Excel中的名称,因此绝大多数函数——常见的统计、财务、文本和查找类函数——都能直接使用。例外是只存在于LibreOffice中的函数,它们没有可以对应的函数:Excel会在这些单元格中显示#NAME?,这是如实反映而不是文件损坏,并且能准确告诉您哪些单元格需要处理。

引用的情况也一样,在大型工作簿上有一点值得检查。跨工作表和跨文件的引用会被改写为Excel的语法,而指向其他文件的链接只有在该文件位于引用所指的位置时才能生效——因此一组相互链接的工作簿应该一起转换,并放在同一个文件夹中,否则在第一次重新计算时链接就会失效。

宏不会被转过去,也不可能转过去。LibreOffice Basic和VBA是两种不同的语言,调用的是不同的对象模型,所以根本不存在可以执行的翻译——而且.xlsx格式在设计上就完全不能容纳宏,这也是Excel为宏单独设立.xlsm格式的原因。依赖宏的电子表格需要重写其自动化部分,而不是转换。如果我们的服务器无法访问,页面会明确告知并改为在本地转换,保留值、公式、数字格式、合并单元格和列宽,但会丢失字体、颜色和图表。

如果您需要的是别的

安装LibreOffice,您就能获得同样的转换效果,数据不经过网络,也没有大小限制:soffice --headless --convert-to xlsx *.ods一条命令就能处理整个文件夹。对于财务模型以及任何您不想发送出去的文件,这才是正确的做法。

在转换之前,值得知道:Excel从2010年起就能直接打开.ods文件。如果对方只是需要查看数据,直接发送原文件可能就行,既不用转换,也完全没有函数名称的风险。只有当文件需要长期在Excel中编辑,而不是只打开一次时,才需要转换。

常见问题

会保留哪些内容?

每个工作表及其公式、数字格式、字体、颜色、边框、合并单元格、列宽、冻结窗格、条件格式、数据验证、批注、图表和图片。隐藏的工作表仍保持隐藏。

我的文件会被存储吗?

文件通过加密连接发送到我们的服务器,完成转换,并在文件就绪的那一刻被删除——不存储、不记录、不分享任何内容。如果服务器暂时无法访问,您的浏览器会改为在本地转换,并准确告诉您哪些内容无法保留。

公式在Excel中能用吗?

能——函数会以Excel中的名称写入。少数只存在于LibreOffice中的函数在Excel里没有对应项;在替换这些函数之前,Excel会在相应单元格中显示#NAME?。

可以一次转换多个文件吗?

可以。把它们一起拖放进来;每个文件都会生成各自的.xlsx,您可以逐个下载,也可以打包成一个ZIP下载。

宏怎么办?

LibreOffice Basic宏无法在Excel中运行,而.xlsx格式也无法容纳宏,因此宏不会被保留。

受密码保护的文件怎么办?

需要先移除密码——打开文件,在“文件 → 信息 → 保护工作簿”(LibreOffice中为“文件 → 属性 → 安全”)中移除密码,保存后再重新转换。没有设置密码的工作表保护会被保留。

小贴士: 宏不会被带入.xlsx。每个文件最大50 MB。如果我们的服务器无法访问,浏览器备用转换会保留值、公式、数字格式、合并单元格和列宽,但不保留字体、颜色和图表。