新手问题 ruby 操作 xls

xiaoxiao · 2013年05月26日 · 最后由 jiafuguang 回复于 2014年04月10日 · 5423 次阅读

项目的一个功能是导入一个 xls 文件,并对这个文件进行解析,在页面上显示其内容,同时能在网页上对 xls 中的数据进行修改,同时修改这个 xls 文件的对应内容。 我的解决方法是用 roo 这个 gem 来解析 xls 文件,用 paperclip 这个 gem 来实现文件的上传和下载。同时在数据库上建一张表来存这个 xls 文件的内容,这样就能在网页上对 xls 文件进行数据的修改,但是还有一个问题是怎么将上传在服务器上的 xls 文件的内容也修改,我看 roo 的介绍对写数据到一个存在的 xls 文件比较困难,也没什么例子,各位有什么好的解决方法没

spreadsheet gem 写数据到 xls 的例子只有 book = Spreadsheet.open '/path/to/an/excel-file.xls' sheet = book.worksheet 0 sheet.each do |row| row[0] *= 2 end book.write '/path/to/output/excel-file.xls' 我这样试过后这个 xls 文件打开格式提示不对,不知到为什么

windows 可以用 win32ole

这个我也考虑过,不过考虑到跨平台还是不选用这个方法

这两个看看?

http://railscasts.com/episodes?utf8=%E2%9C%93&search=xls

如果 xls 是任意格式的话,很难办,指定数据格式的话就好说了。

看了 railscast 第一个视频,有个 download 的操作,就是直接用@product 的以 table 的形式输出,这也是一个解决的方法,不用从后台将上传的文件下载来,

Why are the Microsoft Office file formats so complicated? (And some workarounds) http://www.joelonsoftware.com/items/2008/02/19.html 翻译

看了楼上的链接,还是不知道楼上的想说什么意思。 为什么我想用 gem 将数据写入到 xls 文件中就是为了能用上 paperclip 这个上传文件的 gem,我用 roo 能很好的解析 xls 文件,并能将其中的数据写入到数据库中,如果我修改数据库中的数据也能同时修改上传的 xls 文件,这样下载过来的 xls 文件就是修改后的文件了,如果真不能实现的话,也只能只有以 table 的形式的生成下载文件,而不是从后台下载

你看懂 railscast 的例子,应该就能做出一个能上传 xls/修改数据/下载 xls 的程序了,前提是 xls 数据的格式为特定的。看起来也符合你的要求。

paperclip 其实不是必要的。

如果实在不行的,也只能这样了

#8 楼 @xiaoxiao 意思是 xls 格式是私有格式,要程序处理很麻烦,兼容性最好就是操作 windows 的 API。joel 的建议是,如果主服务器是 Linux,那么就另外装一台 windows 远程调用。

为什么不能导出 csv 再上传

id,nane,age 1,jack,20 2,tom,21 这样的格式比较容易导入,如果 excel 是不规则的,没有规律的,还有合并的单元格,怎么导入啊,求大神指导?????????????????????

需要 登录 后方可回复, 如果你还没有账号请 注册新账号