さて、私はRubyをかなりいじっていますが、それでもかなり新しいです。現在のプログラムで問題が発生しています。私がやりたいのは、用語のリストを含むCSVファイルを取得し、次にcsvファイルを取得してそれらの用語の配列を作成することです。これらの用語を配列に入れたら、Excelブックを検索して、その用語のすべての出現箇所をすべてのシートで見つけたいと思います。用語が見つかった場合は、シート名とセルの場所が記載されたcsvファイルに追加されます。かなり良いスタートを切ったと思います。
編集:私はもうエラーを受け取っていません。指定されたファイルを再作成するだけです。ブックにドロップして比較を行っているようには見えませんか?何か案は?
編集2:使用されたprintステートメントは、文字列が等しい条件である場合、私の問題です。
編集3:私は私の比較に問題を分離しました。term
変数を使用すると、asという用語を取得し、["theterm"]
それを常にfalseになる文字列と比較しようとします...
私のコードは以下の通りです:
require 'roo'
$termsarray = Array.new
puts "Please enter filepath of file of terms (C:/path/to/file.csv)"
#termspath = gets.chomp.to_s
termspath = "C:/Ruby/termslist.csv"
CSV.foreach( "#{termspath}") do |row|
$termsarray << row
end
puts "Added terms to array successfully"
puts "Please enter filepath of file to cross-reference (C:/path/to/file.xlsx)"
#filepath = gets.chomp.to_s
filepath = "C:/Ruby/file_to_crossreference.xlsx"
puts "Please enter filepath for output file (C:/path/to/file.csv)"
output = gets.chomp.to_s
w1 = Excelx.new ( "#{filepath}" )
CSV.open( "#{output}", "w") do |csv|
$termsarray.each do |term|
csv << term
w1.sheets.each do |sheet|
w1.default_sheet = sheet
if w1.first_row && w1.first_column
eval(w1.to_s).each do |index, value|
if term.to_s.chomp.eql? value.to_s.chomp
csv << [sheet, convert_index(index.to_s), value]
end
end
end
end
end
print "File Indexed Successfully!"
end