首页 > 解决方案 > 如何从 ruby​​ on rails 和 nodejs 中的 csv 文件中读取第 2 表

问题描述

我在 excel 中编写了一个CSV 文件,其中有多张工作表,如sheet1sheet2sheet3具有不同的信息,现在我想读取 CSV 文件。如何使用和访问sheet2、sheet3 ...中的信息。ruby on railsNodejs

标签: ruby-on-railsnode.jscsv

解决方案


也许使用更合适的工具来完成这项工作可能会对您有所帮助,有很多可用的工具,我最喜欢的是 RubyXL,它只会让您遍历工作表或使用特定的工作表。

例如 Gemfile

gem 'rubyXL'

然后从命令行安装 gem

bundle install

打开电子表格

xlfile = RubyXL::Parser.parse('my_xl_file')

显然用您的 xl 文件所在的任何路径以及文件名替换“my_xl_file”

并按名称阅读一张纸

xlsheet = xlfile['WorkSheetName']

或者通过工作表位置迭代您可以使用的工作表

xlsheet = xlfile[0]

或 xlsheet = workbook.first xlsheet = workbook.next

如果要循环,请使用 .count 获取张数,然后访问单元格,您只需要行 col (row,col) 例如第一个单元格

row = 1
col = 1
cell_value = xlsheet[row][col].value

在这里阅读更多https://github.com/weshatheleopard/rubyXL

同样,如果上述不适合,还有电子表格 gem。这将以类似的方式与专有 xls 文件一起使用

https://github.com/zdavatz/电子表格

所以回答你的问题

如何从 ruby​​ on rails 和 nodejs 中的 csv 文件中读取第 2 表

我的回答是“不要”,请使用更好的工具来完成这项工作

但是,如果您真的需要使用 nodeJS,那么以下内容应该会有所帮助

默认情况下,它会读取文档中的第一张纸。如果您的电子表格中有多个工作表,则将 sheet: number(工作表索引,从 1 开始)或 sheet: string(工作表名称)作为选项参数的一部分传递(options.sheet 默认为 1):

readXlsxFile(file, { sheet: 2 }).then((data) => {
  ...
})

以上取自https://www.npmjs.com/package/read-excel-file


推荐阅读