Ruby On Rails のデータベースにある既存の xlsx ファイル ストアを更新できますか?
概要
ファイルの読み取りには gem roo を、データベースへのファイルの保存にはペーパークリップを使用しています。
ローカルで同じファイルを開いて単一のセルを更新し、その後ペーパークリップを使用してデータベースに同じファイルをアップロード/置換したいと考えています。
これはrooとpaperclip gemで行うことができますか?
スプレッドシート gem を確認しましたが、この gem は xls ファイルのみをサポートしており、xlsx ファイルはサポートしていません。
解決策
roo のドキュメントによると、これを使用して xlsx ファイルに書き込むことはできません。
ただし、代わりに RubyXL を使用することもできます。セルを編集する短い例を次に示します。
# Read an existing spreadsheet:
workbook = RubyXL::Parser.parse("path/to/Excel/file.xlsx")
# Get the first sheet:
sheet1 = workbook.worksheets[0]
# Set the content of the top-left cell (0, 0) to empty ("")
# while preserve the cell's formula if any:
sheet1[0][0].change_contents("", sheet1[0][0].formula)
# Write the modified spreadsheet to another file:
workbook.write('path/to/output/file.xlsx')
RubyXL の使用法ドキュメントでその他の例を確認してください。