跳到正文

将XLSX转换为ODS

把Excel工作簿转成OpenDocument电子表格,供LibreOffice、OpenOffice以及要求使用ODF的机构使用——每个工作表、公式、格式和图表都完整保留。

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

使用方法

1

添加Excel文件

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

2

转换

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

3

下载

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

OpenDocument容纳不了的内容

工作簿的大部分内容都能顺利转过去,因为两种格式都是ZIP压缩的XML,描述的也基本是同样的东西:每个工作表及其值、公式、数字格式、字体、颜色、边框、合并单元格、列宽、冻结窗格、批注、图表和图片。公式会以OpenDocument中的名称写入,因此标准函数库——查找、统计、日期、文本和财务函数——都会和原来一样正常工作。

转不过去的,是Excel后来添加、而OpenDocument从未纳入标准的功能,在依赖转换结果之前值得先检查一下。数据透视表在某些情况下会被转成普通数据,而不是可交互的透视表;切片器和日程表没有对应项;Power Query连接、数据模型以及较新的动态数组函数都是Excel专有的。建立在这些功能之上的工作簿,与其说是恰好采用Excel格式的电子表格,不如说是一个Excel应用程序,转换后得到的文件能打开,但功能会变少。

普通工作簿则完全是另一回事,而大多数工作簿都属于这一类。预算表、清单、由SUM、VLOOKUP、IF和一张图表构成的模型,都能干净地转换,在LibreOffice Calc中的表现也完全一致。最好的判断标准是:是否有人需要别人教才会用这个工作簿。

VBA宏不会被转过去:.ods无法容纳VBA,而LibreOffice Basic是另一种语言,面向不同的对象模型,所以不存在可以进行的翻译。值得知道的是,LibreOffice直接打开.xlsx时,可以在兼容模式下*运行*部分VBA——这有时比转换更好。如果我们的服务器无法访问,页面会明确告知并改为在本地转换,保留值、公式、数字格式、合并单元格和列宽,但会丢失字体、颜色和图表。

如果您需要的是别的

转换之前,先确认是否真的需要。LibreOffice Calc可以直接打开.xlsx,而且已经支持很多年了——在兼容模式下甚至能运行一部分转换时会被丢弃的宏。只有当文件确实必须以OpenDocument格式保存时才需要转换,这通常是政策要求,而不是技术要求:好几个国家的政府规定公共档案必须使用ODF,正是因为它是一个不归任何人所有的公开标准。

如果确实有这个要求,就在本地批量处理:soffice --headless --convert-to ods *.xlsx没有大小限制,也不会发送任何内容。然后打开几个结果文件看看公式——转换报告成功,却在九个单元格里留下#NAME?,这就是需要警惕的失败情况,而且只有亲自查看才能发现。

常见问题

为什么要转换为ODS?

ODS是电子表格的国际标准(ISO/IEC 26300),是LibreOffice的原生格式,也是许多政府和公共机构对其接收和发布的文件所要求的格式。

会保留哪些内容?

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

我的文件会被存储吗?

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

我的Excel公式还能计算吗?

能。Excel函数会以OpenDocument的公式语法写入,在LibreOffice中的计算结果完全相同。少数最新的Excel专有函数可能在旧版LibreOffice或OpenOffice中不存在。

宏怎么办?

VBA宏不会被保留:LibreOffice只能运行部分VBA,结果可能会在没有任何提示的情况下与Excel不同。

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

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

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