Йоксель » Главный форум

Конвертация xls в jpg

(8 posts)
  1. пытаюсь использовать Йоксель,
    [code]
    Попытка
    Таб=СоздатьОбъект ("ТабличныйДокумент");
    Исключение
    Если ЗагрузитьВнешнююКомпоненту ("SpreadSheet.dll")=0 Тогда
    Сообщить("Не удалось загрузить компоненту Йоксель. "
    "Компонента должна быть в каталоге BIN 1С или в каталоге базы данных. "
    "Скачать компоненту можно на сайте http://yoksel.net.ru"" target="_blank" rel="nofollow" class="extralink">http://yoksel.net.ru";);

    СтандартныйРежим=1;
    КонецЕсли;
    Таб = СоздатьОбъект ("ТабличныйДокумент");
    КонецПопытки;
    Таб.Открыть(ИмяФайла+".xls", "xls");

    Конвертер = СоздатьОбъект ("Йоксель.ГрафическийКонвертер");
    Конвертер.УстановитьДокумент (Таб);
    Конвертер.КоличествоБитНаПиксел = 8;
    Картинка = Конвертер.ПолучитьИзображение ();

    Картинка.Записать (ИмяФайла+".jpg", "jpg");
    Вложение = ИмяФайла+".jpg";
    [code]
    //здесь ИмяФайла - имя файла без расширения

    выдает ошибку:
    Таб.Открыть(ИмяФайла+".xls", "xls");Невозможно открыть файл: Неверный формат файла (Не найден поток "Workbook". Возможно, файл не является книгой Excel или книга Excel сохранена в устаревшем формате)

    Пробовал конвертиовать из mxl , но тоже вываливается с ошибкой

    Таб.Открыть(ИмяФайла+".mxl", "mxl");
    {Документ.Реализация.Форма.Модуль(4046)}: Невозможно открыть файл: Возможно, файл не является составным OLE-файлом
    тоже не получается

    Что не так?

    Отправлено 10 года(лет) назад #
  2. В первом случае файл xls устаревшей версии, которую Йоксель не поддерживает. Он так и пишет.

    Во втором случае, mxl не открывается, потому что Йоксель старой версии, когда формат нельзя было указать строкой. В этом случае строка "mxl" преобразуется в число и получается 0. Йоксель проверяет, равен ли формат 1 и, если не равен, пытается открыть файл как экселевский.

    Соответственно, либо нужно взять более новую версию, либо в качестве формата указывать 1 для mxl или 2 для xls.

    Отправлено 10 года(лет) назад #
  3. (Oleg) спасибо на этом этапе получилось. Задача усложнилась, теперь нужно большие файлы разбивать на страницы . Подскажите умеет ли это компонента и если да то как это сделать, что автоматом делила на страницы по разметке (разделителю страниц) из mxl ?

    Отправлено 10 года(лет) назад #
  4. В демоконфах есть же примеры сохранения в графические файлы. Там есть и работа со страницами.

    Отправлено 10 года(лет) назад #
  5. посмотрел, вроде все просто, но вываливается ошибка

    Конвертер = СоздатьОбъект ("Йоксель.ГрафическийКонвертер");
    Конвертер.ВысотаСтраницы = 16840;
    Конвертер.ШиринаСтраницы = 11907;
    Конвертер.КоличествоБитНаПиксел = 8;
    Конвертер.УстановитьДокумент (Таб);

    ЧислоСтраниц = Конвертер.РассчитатьКоличествоСтраниц();

    Если ЧислоСтраниц>1 Тогда
    Конвертер.ЗаписатьВсеСтраницы ("m:\Temp","JPG", "test");
    Иначе
    Картинка = Конвертер.ПолучитьИзображение ();
    Картинка.Записать (ИмяФайла+".jpg",1);

    КонецЕсли;

    вообще если число страниц 1- то записывается нормально, Если ЧислоСтраниц>1 , то ошибка: Конвертер.ЗаписатьВсеСтраницы ("m:\Temp","JPG", "test");
    {Документ.Реализация.Форма.Модуль(4057)}: Не удается сохранить страницы: Невозможно записать изображение: Не удалось записать файл изображения :JPEG can save only RGB or GreyScale images.

    Та же ошибка выходит в демо конфе

    Отправлено 10 года(лет) назад #
  6. странно, попробовал вместо JPG сохранить в BMP - сохранило нормально

    Отправлено 10 года(лет) назад #
  7. > JPEG can save only RGB or GreyScale images

    Насколько я понимаю, чтобы сохранять в JPEG надо количество бит на пиксел поставить 16 или 24. Когда 8, то там пиксели не как RGB-тройки хранятся, а как индексы в палитре. Ну и, похоже, JPEG-конвертер такой формат не понимает. А еще лучше сохранять в PNG, а не JPEG.

    Отправлено 10 года(лет) назад #
  8. сделал через PNG , спасибо большое

    Отправлено 10 года(лет) назад #

RSS экспорт этой темы

Отправить сообщение

Вы должны войти в систему, чтобы оставлять сообщения.