CSVファイルをExcelに変換するプラグインはRubyにありますか?私はほとんどGoogleをしなかったが、私が見つけたのは、ExcelファイルをCSV形式に変換することだけだった。私はちょっと微調整してExcelをCSVに変換するのに使うことができる宝石を知っていますが、誰かがそれを以前に行ったかどうかを知る必要があります。CSVをExcelに変換するには?
答えて
this postによれば、spreadsheetの可能性があります。これは非常に人気のある宝石のようです。見てみな。例:
book = Spreadsheet::Workbook.new
sheet1 = book.create_worksheet
header_format = Spreadsheet::Format.new(
:weight => :bold,
:horizontal_align => :center,
:bottom => true,
:locked => true
)
sheet1.row(0).default_format = header_format
FasterCSV.open(input_path, 'r') do |csv|
csv.each_with_index do |row, i|
sheet1.row(i).replace(row)
end
end
book.write(output_path)
this postによれば、write_xlsxが可能です。
xlsファイルをエクスポートするのにJRubyでApache POI libraryを使用しました。ここに簡単な例があります。あなたはヘッドレスモードで実行している場合POIのスプレッドシートをフォーマットするための
require 'java'
require 'poi.jar'
# require 'poi-ooxml.jar'
require 'rubygems'
require 'fastercsv'
java_import org.apache.poi.hssf.usermodel.HSSFWorkbook;
wb = HSSFWorkbook.new # OR XSSFWorkbook, for xlsx
sheet = wb.create_sheet('Sheet 1')
FasterCSV.open(ARGV.first) do |csv|
csv.each_with_index do |csv_row, line_no|
row = sheet.createRow(line_no)
csv_row.each_with_index do |csv_value, col_no|
cell = row.createCell(col_no)
cell.setCellValue(csv_value) unless csv_value.nil? # can't pass nil.
end
end
end
f = java.io.FileOutputStream.new("workbook.xls")
wb.write(f)
f.close
いくつかの有用な方法は、
sheet.autoSizeColumn(i)
sheet.createFreezePane(0,1,0,1)
wb.setRepeatingRowsAndColumns(0, -1, -1, 0, 1)
sheet.setColumnWidth(i, 100 *256)
- ですが、注意してください、あなたがする必要があります電話
java.lang.System.setProperty("java.awt.headless", "true")
xl.Rows(1).Font.Bold = true
ws.Cells.EntireColumn.AutoFit
ある
require 'win32ole'
require 'rubygems'
require 'fastercsv'
xl = WIN32OLE.new('Excel.Application')
xl.Visible = 0
wb = xl.Workbooks.Add
ws = wb.Worksheets(1)
FasterCSV.open(ARGV.first) do |csv|
csv.each_with_index do |csv_row, line_no|
csv_row.each_with_index do |value, col|
ws.Cells(line_no + 1, col + 1).Value = value
end
end
end
wb.SaveAs("workbook.xls", 56) # 56 = xlExcel8 aka Excel 97-2003. i.e. xls
wb.SaveAs("workbook.xlsx", 51) # 51 = xlOpenXMLWorkbook
wb.SaveAs("workbook.xlsb", 50) # 50 = xlExcel12
wb.Close(2) #xlDoNotSaveChanges
xl.Quit
をインストールしている場合にも、Windows上でWin32oleを使用することができます
別のオプションは、MicrosoftのXML Spreadsheetに直接書き込むことですフォーマットは、Railscasts.comのRyan Batesがat the end of his Exporting CSV and Excel episodeのようにします。
<?xml version="1.0"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html="http://www.w3.org/TR/REC-html40">
<Worksheet ss:Name="Sheet1">
<Table>
<Row>
<Cell><Data ss:Type="String">ID</Data></Cell>
<Cell><Data ss:Type="String">Name</Data></Cell>
<Cell><Data ss:Type="String">Release Date</Data></Cell>
<Cell><Data ss:Type="String">Price</Data></Cell>
</Row>
<% @products.each do |product| %>
<Row>
<Cell><Data ss:Type="Number"><%= product.id %></Data></Cell>
<Cell><Data ss:Type="String"><%= product.name %></Data></Cell>
<Cell><Data ss:Type="String"><%= product.released_on %></Data></Cell>
<Cell><Data ss:Type="Number"><%= product.price %></Data></Cell>
</Row>
<% end %>
</Table>
</Worksheet>
</Workbook>
あなたがwin32oleを使っているのであれば、ExcelのCSVファイルを開いてxlsとして保存するだけのようです。私はコードが何であるか分からない。 – pguardiario
良い点。私は、その例を上の例に似せるようにしたいと考えていましたが、CSVをExcelに直接開くことはよりスマートな考えです。 –
もう1つの宝石があります。私はwriteexcelが非常に簡単に仕事をしてくれました。もう一度おねがいします。 –
あなたはEXCELへの改宗者CSVのための任意の宝石を見つけない場合、次の2つの宝石を見つけることを試みること
-
(CSVファイルを読み込むための)
- 読み取り/書き込みCSV例えばFasterCSV
- 読み出し/書き込みEXCEL(書き込みEXCELファイル用)。 SpreadSheet
FasterCSVは標準ライブラリで 'require" csv "'としてRuby 1.9に組み込まれています。 – Phrogz
- 1. CSVをExcelテーブルに変換する
- 2. PythonがExcel 2004 xslをcsv(またはExcel)に変換する
- 3. テーブルデータをpdf、csvに変換し、角度2をExcelに変換
- 4. 大きなExcelファイルをCSVに変換
- 5. excel/csvに変換するためにコレクションを分割する
- 6. CSVをExcelに変換し、セルに書式設定する
- 7. txtファイルをCSVまたはExcelに変換しますか?
- 8. csvファイルをpowershellを使用してExcelに変換する
- 9. excelファイルをcsv形式に変換せずにphp myadminにインポートするには
- 10. ExcelをCSVに変換するAppleScript/Automatorフォルダアクション
- 11. CSVをJSONに変換するには?
- 12. UTF-8 csvファイルをExcelで読み込み可能なCSVに変換する
- 13. htmlをExcelに変換するには?
- 14. 複数のcsvファイルをExcelファイルに変換しますか?
- 15. Excelの範囲をcsvまたはタブ区切りファイルに変換する
- 16. 大規模なXMLデータをExcelまたはCSVに変換する方法
- 17. は変換-CSV-に-JSONリターンエラー
- 18. 大きなUNICODE csvファイルをUTF-8 CSVに変換せずに変換する
- 19. Excel 2010スプレッドシートの単一ワークシートを.csv形式に変換
- 20. Pythonでcsvで想定されるExcelファイルを変換する
- 21. Excel CSVをpostgreSQLにインポートするには?
- 22. 複数の異なるCSVファイルを1つのExcelドキュメントに変換する
- 23. PHPを使用してExcel XLSをCSVに変換する方法
- 24. xlsmをcsvに変換
- 25. テーブルをCSVに変換
- 26. CSVファイルをJSONに変換
- 27. XMLをCSVに変換する
- 28. CSVをPythonのシェープファイルに変換する
- 29. jsonをpythonでCSVに変換する
- 30. pandasデータフレームをcsvに変換する
通常、ExcelではCSVをインポートできます。通常は動作します。 –
もう1つのほぼネイティブな選択肢です。XMLのインポートによって「かなり」Excelドキュメントが生成される可能性があります。これを行うには、Railsの#to_xmlの出力をXSLTに送ります。 –
可能な重複した質問:http://stackoverflow.com/questions/6646430/whats-the-easiest-way-to-export-a-csv-to-excel-with-ruby –