#0
by selenat
Столкнулся с проблемкой. Ячейки в табличном документе содержат длинные строки. При сохранении в эксель содержимое этих ячеек просто обрезается. Релиз платформы старый. 8.0.18.2. Вопроса два. 1.Удастся ли это победить обновлением релиза (соответсвенно до какой версии). 2.Как еще это можно победить.
#5
by selenat
в 1С все нормально показывается. Мало того, если сохранить в mxl и открывать из 1С, тоже все хорошо. Обрезает почему-то при сохранении в формате xls
#9
by Aprobator
может объединение ячеек поможет? Типа кидать длинный текст не в одну ячейку, а в объединение ячеек, как вариант.
#12
by selenat
у меня и так ячейка - объединение нескольких. Но в экселе должен быть уже готовый вариант (который сосбственно и сформирован в 1С)...
#13
by selenat
Звездец. Позвонил отцу проконсультирваться. Он говорит, что это обходится. Но для этого нужно формировать средствами языка экселевский документ через ОЛЕ-объект, при помощи бесиковских команд... о-О
#15
by Torquader
просто в Excel передаются строки до 255 символов, а уже макрос в Excel собирает их, как было нужно - у меня вообще Excel "кушала" текстовый файл, по которому формировался лист.
#17
by Torquader
на самом деле проблема в том, что окно передачи данных OLE - это 256 символов на строку, далее он её режет, причём даже из макросов Excel. Вот только не помню, что будет, если использовать значение Value2, которое чем-то там отличается. А формула в ячейке Excel никогда не может быть больше 256 символов - Microsoft никогда не умел и не научится работать с динамической памятью.
#19
by Torquader
Пишется шаблон Excel, то есть документ, который будет что-то делать. В нём есть процедура Sub Workboon_OnOpen в которой просто ищем нужный нам текстовый файл, который открываем на чтение через Scripting.FileSystemObject и читаем по строкам: Не забываем, что нужно создать новую книгу (или лист) - чтобы не писать в наш шаблон - посылать макросы кому-то в подарок - бессмысленно. В начале идут определения штрифта и цветов. Font:Номер,ИмяШтрифта,Высота,Жирность Color:Номер,R,G,B Border:Номер,Верх,Низ,Лево,Право,Ширина Потом идёт описание шаблона документа Columns:Ширина колонки,... Теперь описываем "строки" Line:Высота строки. Cells:НомерЯчейки,Штрифт,Цвет,Рамка,Тип,Данные Тип=Т просто текст, N это число,F это формула в формате RC. Штрифт, цвет и рамка - это ссылки на описание в заголовке. Чтение файла While File.atEndOfStream=false if n="Line" then ' читаем высоту строки i=CLng(s) ' здесь у меня была функция проверки формата, но для скорости можно и так CurrentRow=CurrentRow+1 ' сдвигаемся на следующий ряд (не забть занулить перед работой) InputSheet.Rows(CurrentRow).Height=i ' устанавливаем высоту строки elseif n="Cells" then if n<>"-" then CurColor=GlobalColorArray(CLng(n)) else CurColor=False ' и так далее для остальных параметров .Font=GlobalFontArray(CurFont) if CurColor<>False then .Interrior.Color=CurColor ' с Border немного сложнее, так как там надо установить флаги чёрточек и их тип в разные места (как это было сделано я сейчас не помню) wend ' ну и так далее
#20
by Torquader
P.S. писал по памяти, но идея должна быть понятна. Чтобы не было вопросов - Такой пример: End Sub прекрасно "впихивает" в строку все 1000 чисел - явно более 256 символов.
#22
by selenat
(19,20) спасибо! Завтра буду разбираться... слышал про него краем уха, но не помню что за зверь...
#23
by Коллайдер
обрезка - шалости экселя.... вроде в последнем (2007 или каком там) - это ограничение сняли.... как все сложно то... Проще надо быть... проще...
#27
by selenat
+26 кроме того, если обыкновенным копи-пастом копируешь в ячейку текст, то ничего не обрезается, весь текст сохраняется в ячейке. Так что это не приколы экселя, это уродский механизм платформы 1С по сохранению данных в экселевском формате...
#28
by selenat
Так, еще вопросик. А рисунки при сохранении табличного документа в эксель почему теряются? Эксельный файл уже без факсимилье идет. Это как-то настраивается?
#29
by MM
8.0 штатными средствами пишет в формате Эксел 95, который не поддерживает Юникод и есть ограничение на длину ячейки. В 8.1 использует более старшую версию Эксела, или можно, как было сказано ранее, исправить полученный xls файл через OLE Automation, достаточно изменить только ячейки с длинными строками.
#33
by Leksus
Синтаксис: Записать(<Имя файла>, <Тип файла таблицы>) Параметры: <Имя файла> (обязательный) Тип: Строка. Имя файла, в котором сохраняется табличный документ. <Тип файла таблицы> (необязательный) Тип: ТипФайлаТабличногоДокумента. Формат, в котором будет сохранен табличный документ. Значение по умолчанию: MXL Описание: Записывает табличный документ в файл. Примечание: При работе на сервере или через com-соединение использует только файлы форматов mxl и txt. Пример: ТабДок.Записать("C:My DocumentsТаблица2.mxl");
#36
by selenat
увидел. Но коллекция <Тип файла таблицы> не содержит Excel97. Похоже, надо перейти на 8.1...
#41
by КонецЕсли
Из 8.0 по ОЛЕ засылаю в ячейку столько, что помещается только на 2 экранах (19 дюймов). Одной строкой. Ехель2002.
#43
by selenat
по ОЛЕ - да. Можно. Уже пример надыбал. Только трудоемко... Про рисунок кто-нить скажет чего?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Сохранение документа без запроса на сохранение? (7.7)
- Сохранение параметров страницы при печати табличного документа
- Сохранение отчетов в формате Excel: "недопустимый формат файла"
- сохранение/восстановление ТЗ в документе
- Сохранение настроек построителя отчета.
- Сохранение табличного документа в *.xls
- Сохранение данных поля табличного документа в реквизит типа ХранилищеЗначения
В этой группе 1С
- Замер производительности на клиент- сервере.
- Настройка прав пользователей
- Сумма базы коэф. по По объему выпуска равна 0
- Как 7.7 проверить что элемент справочника еще не записан в базу
- ПБУ 18 в БП 8.1
- Перенос данных из "Торговля и склад" 77 в "Управление торговлей" 8.1
- УПП, отчет списки работников организаций
- Поменять кодировку текста
- Как в СКД работать с параметрами для отбора в интервале дат.
- СКД: Не найдено поле замены
- Внешняя обработка через com соединение
- План обмена как количество элементов?
- 1С SQL и числовые реквизиты регистра остатков
- Получить html текст табличного документа
- 1С 8.1 внешние обработки, подключаемые к отчету
- VBA, удалить повторяющиеся строки
- Убрать из запроса движения по документам "Перемещение товаров"
- Переход с УСН в ОСНО v7
- СКД: Выражение "ИЛИ" в отчетах созданных СКД
- Заполняю колонку табличного поля значением, более 10 символов не влазит