1

必要なもの

ノコギリの出力をExcelのようなスプレッドシートに送信する前にフォーマットすることは可能ですか?

例:http ://www.asus.com/Notebooks_Ultrabooks/ASUS_TAICHI_21/#specifications のテーブルは適切にフォーマットされていますが、スプレッドシートgemを使用してNokogiri出力に同様のフォーマットを適用できますか?

私のコード

require 'nokogiri'
require 'open-uri'
require 'spreadsheet'

doc = Nokogiri::HTML(open("http://www.asus.com/Notebooks_Ultrabooks/ASUS_TAICHI_21/#specifications"))

#Grab our product specifications
data = doc.css('div#specifications div#spec-area ul.product-spec li')

#Modify our data
lines = data.map(&:text).join("\n")

#Create the Spreadsheet
Spreadsheet.client_encoding = 'UTF-8'
book = Spreadsheet::Workbook.new

sheet1 = book.create_worksheet
sheet1.name = 'My First Worksheet'

#Output our data  to the Spreadsheet
sheet1[0,0] = lines
book.write 'C:/Users/Barry/Desktop/output.xls'
4

1 に答える 1

0

コードは、単一の列を持つ単一の行を持つスプレッドシートを作成します。その列は、すべての行を連結したものです。

各行を独自の列に配置するには、次のようにします。

lines = data.map(&:text)
...
lines.each.with_index do |line, i|                                                        |
  sheet1[0, i] = line                                                                     |
end                                                                                       |
book.write '/tmp/output.xls'                                                              |

各行を独自の行に配置するには、次のようにします。

lines = data.map(&:text)
...
lines.each.with_index do |line, i|                                                        |
  sheet1[i, 0] = line                                                                     |
end                                                                                       |
book.write '/tmp/output.xls'                                                              |
于 2013-02-03T13:15:20.670 に答える