Модераторы: ginnie, korob2001

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Spreadsheet::ParseExcel::SaveParser, на винде работает на линухе нет 
:(
    Опции темы
des00
Дата 24.9.2008, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 8.9.2008

Репутация: нет
Всего: нет



Сделал дамп,
т.к. стуктура документа у меня сложная, то и дамп вышел офгенно большой.
Делал по ячейкам 1,2,1,10

Код

MergeArea ($oWs,1,2,1,10);


Такое чувство, что файл сохраняется в формате xls95 (в котором нет объед. ячеек)
Что конкретно смотреть в логах?

Скачать файл excel.tgz

Также сделал простой файлик в OpenOffice Calc, сохранил в формате XLS 97/2000
и прогнал тот же скрипт, лог поменьше.
Скачать файл excel-oo.tgz

Может кто поделится 100% верным файлом xls нужной версии, чтобы я попробовал именно на вашем.

По поводу своих обверток и других модулей. Мне надо то 3-5 строк объединить и все. Все остальное меня устраивает и вполне работает. Не хочется городить огороды из-за этого.

PM MAIL   Вверх
des00
Дата 25.9.2008, 07:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 8.9.2008

Репутация: нет
Всего: нет



создал в excel 2000 простой файл, сделал в нем средствами экселя объединенную ячейку.
Запустил скрипт
лог Скачать файл excel2000.tgz

на выходе в файле все тоже самое что у меня было но нет ни одной объединенной ячейки.. :(
даже той что средствами экселя делал

Вывод: S:PE:SP создает файл xls 5\95 где форматом не предусмотрены объд.ячейки.. иного я не могу подумать

Это сообщение отредактировал(а) des00 - 25.9.2008, 07:07
PM MAIL   Вверх
nitr
Дата 25.9.2008, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 2
Всего: 84



des00, тогда почему я смог это сделать?

P.S.: у меня не было времени смотреть логи, позже гляну как освобожусь.

Добавлено через 16 секунд
Цитата(des00 @  25.9.2008,  07:04 Найти цитируемый пост)
Вывод: S:PE:SP создает файл xls 5\95 где форматом не предусмотрены объд.ячейки.. иного я не могу подумать

не в этом проблема.


--------------------
PM   Вверх
des00
Дата 25.9.2008, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 8.9.2008

Репутация: нет
Всего: нет



Спасибо, жду. Очень хочется побороть этот косяк.

Вот пробный xls-файлик (excel 2000)  Скачать файл docs.xls

PM MAIL   Вверх
nitr
Дата 26.9.2008, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 2
Всего: 84



des00, в логах всё нормально (на первый взгляд). В ячейках, которые вы объединяете есть текст?


--------------------
PM   Вверх
des00
Дата 26.9.2008, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 8.9.2008

Репутация: нет
Всего: нет



изначально, в оригинальном файле, был.. 

но пробуя на пустом документе (что я выложил выше) без текста, все равно ничего не выходит :(
PM MAIL   Вверх
nitr
Дата 3.10.2008, 01:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 2
Всего: 84



des00, я про то, что вы, например, объединяете ячейки 1 2 3, в которых есть (хотя бы в одной) значения. Тогда надо иначе, из первой ячейки запомнить значение, в остальных удалять, затем снова в первую вставить запомн.значение... Но думаю, можно погуглить и есть готовые решения.


--------------------
PM   Вверх
nitr
Дата 3.10.2008, 01:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 2
Всего: 84



Код
#/usr/bin/perl    
use strict;
use warnings;

use Spreadsheet::ParseExcel::SaveParser;
use Spreadsheet::ParseExcel::SaveParser::Workbook;
use Spreadsheet::ParseExcel::SaveParser::Worksheet;

my $oExcel = new Spreadsheet::ParseExcel::SaveParser;
my $oBook = $oExcel->Parse('new.xls');

my $oWs = $oBook->{Worksheet}[0];

MergeArea($oWs, 1, 2, 1, 4);

$oExcel->SaveAs($oBook, 'temp.xls');  # as the same name

sub MergeArea {
    my $oWs = shift;
    my ($sR, $sC, $eR, $eC) = (@_);
    
    my $value = $oWs->{Cells}[$sR-1][$sC-1]->{_Value};
    for(my $i = $sR-1; $i<=$eR-1; $i++) {
    for(my $j = $sC-1; $j<=$eC-1; $j++) {
        $oWs->{Cells}[$i][$j]->{_Value} = '';
        $oWs->{Cells}[$i][$j]->{Val} = '';
        $oWs->{Cells}[$i][$j]->{Merged} = 1 if $oWs->{Cells}[$i][$j];
    }
    }
    $oWs->{Cells}[$sR-1][$sC-1]->{_Value} = $value;
    $oWs->{Cells}[$sR-1][$sC-1]->{Val} = $value;
}

на выходе отличный результат smile (в архиве temp.xls)

Добавлено через 1 минуту и 11 секунд
Лучше в доке прочесть как изменить значение (по правилам модуля этого smile )
        $oWs->{Cells}[$i][$j]->{_Value} = '';
        $oWs->{Cells}[$i][$j]->{Val} = '';

Думаю это не очень "эстетично" smile)

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  attach.tgz 1,67 Kb


--------------------
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: Системное программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к системному программированию на Perl
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0463 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.