LINUX.ORG.RU

Сделать Exel-евский файл


0

0

Не подскажете ли, как мне решить такую проблему: есть данные в текстовом файле, в каждой строке несколько слов, разделеных пробелами. Как можно сделать Экселевский файл, и забить туда эти строки по столбцам соответственно? А то прога генерит отчеты, а начальство требует их в "удобочитаемой форме":/ Помогите пожалуйста..

anonymous

Не знаю насчёт ООо, но в МСовском Excel есть возможность загрузки таблици из простого файла

shuthdar ★★★
()
Ответ на: комментарий от sdio

Спасибо, попробовал, но как сделать так, чтобы автоматом открывалось? а то импорт сначала делает. Начальство может запутаться... :/

anonymous
()
Ответ на: комментарий от anonymous

Перл модуль

Description: create Excel spreadsheets
 The Spreadsheet::WriteExcel module can be used to create a cross-
 platform Excel binary file. Multiple worksheets can be added to a
 workbook and formatting can be applied to cells. Text, numbers,
 formulas and hyperlinks can be written to the cells.
 .
 The Excel file produced by this module is compatible with Excel 5,
 95, 97 and 2000. Generated files are also compatible with the
 Linux/UNIX spreadsheet applications OpenOffice.org, Gnumeric and XESS.
 The generated files are not compatible with MS Access.
 .
 This module cannot be used to read an Excel file. See
 Spreadsheet::ParseExcel or look at the main documentation for some
 suggestions. This module cannot be used to write to an existing
 Excel file.

anonymous
()
Ответ на: комментарий от anonymous

Кстати весьма просто оказалось

$ cat csv2xls

#! /usr/bin/perl

use Spreadsheet::WriteExcel;

my $workbook = Spreadsheet::WriteExcel->new("excel.xls");
$worksheet = $workbook->add_worksheet();

$row = 0;
while (<>) {
	$col = 0;
	@arr = split /,/;
	foreach $field (@arr) {
		$worksheet->write($row, $col++, "$field");
	}
	$row++;
}
$workbook->close();
-------------------------------------------------------------
Использовать:
cat data.csv | ./csv2xls
Результат в файле excel.xls

sdio ★★★★★
()
Ответ на: комментарий от anonymous

Вроде можно. Я пока не разбирался, не интересно

Из man

 # Write a phrase in Cyrillic using a hex-encoded string
           #
           my $uni_str = pack "H*", "042d0442043e0020044404400430043704300020043
d" .
                                    "043000200440044304410441043a043e043c0021";

           $worksheet->write_unicode('A5', $uni_str);

           # Map a string to UTF-16BE using an external module.
           #
           my $map   = Unicode::Map->new("ISO-8859-1");
           my $utf16 = $map->to_unicode("Hello world!");

sdio ★★★★★
()
Ответ на: комментарий от sdio

все там хорошо с русским - я проверял. главное - использовать именно write_unicode и нормально перекодировать записываемый текст в юникод.

sasha999 ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.