Проблема с написанием файла, чтобы превзойти электронную таблицу - PullRequest
2 голосов
/ 01 мая 2010

Я пытаюсь написать файл Excel, используя электронную таблицу ruby ​​1.9 версии 0.6.4.1 для Windows. Все идет хорошо, пока я не доберусь до утверждения book.write когда я пишу book.write "c:/spreadsheet/excel-file.xls Я продолжаю получать следующую ошибку Нет такого файла или каталога - c: /spreadsheet/excel-file.xls когда я запускаю его из консоли ruby, я получаю сообщение об ошибке errono :: EINVAL неверный аргумент. когда я проверяю путь, я вижу, что файл был создан, но я пишу в него пустой

Может кто-нибудь сказать мне, что мне делать?

Спасибо

Ответы [ 3 ]

1 голос
/ 30 марта 2011

У нас была такая же проблема.

require 'rubygems'
require 'logger'
require 'spreadsheet'
require 'stringio'

workbook = Spreadsheet::Workbook.new
worksheet = workbook.create_worksheet
worksheet[0, 0] = "Hello, World!"

ostream = StringIO.new    

workbook.write (ostream)

ostream.rewind

File.open("aFile.xls","wb") do |f|
  f.write(ostream.read)
end

puts "Done!"
1 голос
/ 02 мая 2010

Не используйте Windows!

Согласно http://pullmonkey.com/2008/02/19/errno-einval-invalid-argument/

STDOUT не существует, если вы запускаете mongrel как службу под Windows, и в результате получается errono :: EINVAL.

0 голосов
/ 05 апреля 2011

Мы решили, что использование библиотек для Excel является хрупким.Мы используем CSV с расширением ".xls".Зачем?Потому что Excel не показывает эту неприятную строку импорта.Он просто открывает его как обычный файл.Пользователи не заметят разницу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...