请问下广大网友如何恢复libreoffice读取错误的文档?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问下广大网友如何恢复libreoffice读取错误的文档?相关的知识,希望对你有一定的参考价值。
参考技术A 今天也遇到相同问题,网上搜索了一下解决方法,还算轻松地解决了,总结如下:LibreOffice
Cale
的档案无法开启,请教解决方法.
读取错误:发现子文件Content.xml内档案的格式错误,位置在2,6224761(row,col).
1.备份该Cale的档案,用解压软体提取Content.xml,因为原content.xml
没有换行,为了查看方便,推荐将
>
替换为
>\n
。这还能方便文本编辑器进行“折叠”。
2.用Firefox开启Content.xml,会出现错误讯息和错误行,字
3.以文字编辑软体修改Content.xml的错误(档案很大要有耐心),存档别离开,再一次用Firefox开启Content.xml,若有错误再修改,直到Firefox可以读取成功,存档离开编辑
4.用解压软体开启该Cale的档案,替换正确的Content.xml,存档後便可用Libreoffice读取
我的例子是:UbuntuStudio
14.04
版,
(1)首先备份你这个出错的文件;
(2)
鼠标右键点击
libreoffice
calc
的
ods
文件,选择用归档管理器(Archive
Manager)打开;
(3)在弹出的窗口里,鼠标右键点击
content.xml
文件,选择打开方式,选择gedit;
(4)在gedit里,用替换功能,把
>
替换为
>\n
(等待的时间会很长),然后显示起来就好看多了;
(5)在gedit里,把这个文件“另存为...”
abc.xml
文件,保存在另一个目录下;
(6)然后鼠标双击
abc.xml
文件,默认会用FireFox打开,然后可以看到提示在第几行第几列出错;
(7)在gedit里,鼠标点击任意一行,下面的状态栏可以看到所在的行数和列数,找到出错的地方;
(8)修改错误,由于出错的问题各不相同,所以修改方法也各不相同,
有些错误也许要了解xml语法格式才能修改好,不会修改的话,也可以试试干脆删除那一小段,
我的例子是在这一句的结尾重复多了一个颜色:
fo:color="#3333ff"
fo:color="#ff3333"/>
删除其中一个即可;
(9)在gedit里修改好
abc.xml
文件后,点击保存,然后再用FireFox打开看看有没有出错提示;
(10)全部错误修改好后(通常也只有一个错误),再重新用gedit打开归档管理器里的
content.xml
文件;
(11)在gedit里,把修改好的
abc.xml
文件内容全选复制,覆盖粘贴到
content.xml
文件里,
其实更保险的方法是,在
content.xml
文件里查找出错的那部分代码,手工修改,
(12)点击保存
content.xml
文件,系统会自动提示你,是否更新归档文件?当然更新了,求之不得呢。
(13)然后鼠标双击
ods
文件,哈哈,又能打开了,恢复正常!
如何读取 ods 文档(例如 LibreOffice calc)并将其转换为 Julia 数据帧?
【中文标题】如何读取 ods 文档(例如 LibreOffice calc)并将其转换为 Julia 数据帧?【英文标题】:How to read an ods document (e.g. LibreOffice calc) and convert it in a Julia dataframe? 【发布时间】:2016-12-06 15:42:45 【问题描述】:如何在 Julia DataFrame 中从 ODS 电子表格(由 OpenOffice、LibreOffice 等使用)导入数据?
(这是一个社区维基问答)
【问题讨论】:
【参考方案1】:如果机器上安装了 python,则 Julia 可以非常直接地使用 ezodf 模块,使用 PyCall:
using PyCall
using DataFrames
@pyimport ezodf
doc = ezodf.opendoc("test.ods")
nsheets = length(doc[:sheets])
println("Spreadsheet contains $nsheets sheet(s).")
for sheet in doc[:sheets]
println("---------")
println(" Sheet name : $(sheet[:name])")
println("Size of Sheet : (rows=$(sheet[:nrows]()), cols=$(sheet[:ncols]()))")
end
# convert the first sheet to a dictionary
sheet = doc[:sheets][1]
df_dict = Dict()
col_index = Dict()
for (i, row) in enumerate(sheet[:rows]())
# row is a list of cells
# assume the header is on the first row
if i == 1
# columns as lists in a dictionary
[df_dict[cell[:value]] = [] for cell in row]
# create index for the column headers
[col_index[j]=cell[:value] for (j, cell) in enumerate(row)]
continue
end
for (j, cell) in enumerate(row)
# use header instead of column index
append!(df_dict[col_index[j]],cell[:value])
end
end
# and convert the dictionary to a DataFrame
df = DataFrame(df_dict)
(这只是 Julia 对 davidovitch 的 python 代码on this answer的重写)
编辑:
我现在确实根据这段代码编写了一个 Julia 包:OdsIO。
它提供了几个从 ods 文件(包括单元格范围)导入数据的功能,希望很快它也允许导出。
编辑2:
从 v0.1.0 版本开始支持导出到 Ods
【讨论】:
以上是关于请问下广大网友如何恢复libreoffice读取错误的文档?的主要内容,如果未能解决你的问题,请参考以下文章
如何读取 ods 文档(例如 LibreOffice calc)并将其转换为 Julia 数据帧?