1

Rubyを学んでおり、Excelデータを操作しようとしています。

私の目標:

Excel ファイルから電子メール アドレスを抽出し、それらをテキスト ファイルに 1 行に 1 つずつ配置し、末尾にカンマを追加できるようにします。

私のアイデア:

私の答えは、スプレッドシートと File.new の使用にあると思います。

私が求めているのは方向性です。目標を達成するためのヒントやヒントがあれば聞きたいです。ありがとう

自分で理解したい方向性だけを探している正確なコードを投稿しないでください...

ありがとう、カレン

アップデート::

そのため、正規表現は一致するすべての文字列を見つけて配列に格納できるようです。私はそれを設定するのに苦労していますが、それを理解できるはずです....しかし、今は始めるために、「Eメール」というラベルの付いた列だけを抽出します.....私が今持っている質問は:

`parse_csv = CSV.parse(read_csv, :headers => true)`

:skip_blanks のデフォルト値は false に設定されています。true に設定する必要がありますが、それを行うための正しい構文がどこにも見つかりません...次のようなものを想定していました

`parse_csv = CSV.parse(read_csv, :headers => true :skip_blanks => true)`

しかし、いいえ.....

4

3 に答える 3

1

Excel ファイルを csv (カンマ区切り値) として保存し、Ruby のライブラリを操作します

于 2013-03-04T16:40:47.320 に答える
0

spreadsheet(読み取りと書き込みが可能)の他に、Excelやその他のファイルタイプを。で読み取ることができますRemoteTable

gem install remote_table

require 'remote_table'
t = RemoteTable.new('/path/to/file.xlsx', headers: :first_row)

@ aug2uagが言うように、CSVを作成するときは、rubyの標準ライブラリを使用できます(gemのインストールは必要ありません)。

require 'csv'
puts [name, email].to_csv
于 2013-03-04T17:38:14.217 に答える
0

個人的には、できるだけシンプルにしてCSV.

これがどのように機能するかの擬似コードを次に示します。

read in your file line by line
extract your fields using regex, or cell count (depending on how consistent the email address location is), and insert into an arry
iterate through the array and write the values in the fashion you wish (to console, or file)

あなたが持っていたコメントのコードは素晴らしいスタートですが、putsファイルではなくコンソールにのみ書き込みます。また、メールアドレスを取得していることをどのように知る必要があるかを理解する必要があります.

お役に立てれば。

于 2013-03-04T21:22:17.087 に答える