При чтении xml из Excel некоторые числа подменяются текстом #750482


#0 by Аня Анютка
Здравствуйте! Проблема такая: выгружаю из 1с в xml, а затем открываю получившийся файл Excel-ем. И некоторые числовые данные нормальные (числовой формат), а некоторые - переделываются в текстовые. Конкретно: колонки Количество и Сумма - числа, а ЦенаПолн и ЦенаЦех - текст (хотя изначально в 1с-ке все это - числа). Код выгрузки: [code]          Данные в ТаблицаДляВывода получаю из регистров ЦеныНоменклатуры и ПродажиОбороты. Файл-результат:
#1 by Живой Ископаемый
а проблема какая?
#2 by Аня Анютка
проблема в том, что числа должны остаться числами. Но они не все остаются числами.
#3 by Аня Анютка
цитирую первый пост "выгружаю из 1с в xml, а затем открываю получившийся файл Excel-ем. И некоторые числовые данные нормальные (числовой формат), а некоторые - переделываются в текстовые"
#4 by Живой Ископаемый
ну то есть нужно просто не читать этот ХМЛ Екселем, и тогда числа будут оставаться числами - верно? (вообще не могу придумать зачем ХМЛ читать Екселем)
#5 by Живой Ископаемый
2 В этой цитате описание положения дел, и нет постановки проблемы
#6 by МимохожийОднако
Открой файл блокнотом и посмотри
#7 by Аня Анютка
1с стоит на сервере, пользователи работают по удаленке, на сервере нет Excel, поэтому приходится выгружать в xml. Но конечному пользователю нужен отчет в Excel. Поэтому вот так и делаем: из 1с выгружаем в xml, а потом открываем через Excel его.
#8 by Живой Ископаемый
Чтобы сохранять отчет в Ексель на компе не обязан быть установлен Ексель.
#9 by Живой Ископаемый
Поэтому вы несете чушь.
#10 by Аня Анютка
в блокноте между цифрами различия нет (и у Количества и у ЦенаПолн дробная часть отделяется точкой):
#11 by Аня Анютка
Тогда скажите, как еще это можно сделать. Просто я других способов не знаю. Чего обзываетесь-то? Подскажите решение.
#12 by Dilgorp
поместить отчет в ТабличныйДокумент и ТабличныйДокумент (SpreadsheetDocument) Записать (Write) Синтаксис: Записать(<ИмяФайла>, <ТипФайлаТаблицы>) Параметры: Тип: Строка. Имя файла, в котором сохраняется табличный документ. Тип: ТипФайлаТабличногоДокумента. Формат, в котором будет сохранен табличный документ. Значение по умолчанию: MXL. Описание: Записывает табличный документ в файл. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер). Примечание: При работе на сервере, веб-клиенте или через внешнее соединение нет возможности сохранять в формате XLS95. Не поддерживается сохранение в PDF картинок типа Метафайл. При работе на веб-клиенте вызов метода выполняет обращение к серверу. При работе на мобильной платформе возможно сохранение только в формат mxl. Пример: Описание: Содержит варианты форматов файлов для сохранения табличного документа. Используется для определения параметра <ТипФайлаТаблицы> метода Записать. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер). Возможен обмен с сервером.
#13 by Живой Ископаемый
Синтаксис: Записать(<ИмяФайла>, <ТипФайлаТаблицы>) Параметры: Тип: Строка. Имя файла, в котором сохраняется табличный документ. Тип: ТипФайлаТабличногоДокумента. Формат, в котором будет сохранен табличный документ. Значение по умолчанию: MXL Описание: Записывает табличный документ в файл. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение. Примечание: При работе на сервере, веб клиенте или через внешнее соединение нет возможности сохранять в формате XLS95. Не поддерживается сохранение в PDF картинок типа Метафайл. При работе на веб-клиенте вызов метода выполняет обращение к серверу. Пример: ТабДок.Записать("C:My DocumentsТаблица2.XLS","XLS"); //<< СЮДА СМОТРЕТЬ
#14 by Живой Ископаемый
#15 by Аня Анютка
В этом случае получится ли книга Excel? (т.е. не один лист, как обычно 1с сохраняет, а именно книга с возможностью добавления листов)?
#16 by Аня Анютка
тоже вопрос
#17 by Живой Ископаемый
2 Эти листы отправить пользователю на комп и пусть собирает книгу. И числа не будут текстом. Верно?
#18 by Живой Ископаемый
Если блин он в Екселвскую книгу импортирует сырой ХМЛ, то уж добавить новфй лист из отдельного файла как-нибудь сможет
#19 by Аня Анютка
он не импортирует, он просто Excel-ем открывает. Excel позволяет это делать. Директору эти заморочки не нужны. Ему нужно готовое решение. Одно дело - открыть сформированный файл из Excel (какая разница - какое у него расширение?), а другое - что-то там доделывать в файле еще.
#20 by ДенисЧ
В любом случае файл екселя - есть книга. И страницы уж точно добавлять можно
#21 by Lama12
Ищи тему за последние два дня по добавлению листов в книгу ексель. Обсуждалось или вчера или позавчера.
#22 by Живой Ископаемый
2 я гарантирую, что ексевский файл Екселем он сможет открыть. Ексель позволяет и это делать также
#23 by Аня Анютка
о, спасибо, сейчас поищу
#24 by Dilgorp
Если нет возможности поставить на сервере ексель или же разобраться как в табличном документе добавлять страницы, можно извратиться по-другому поднять виртуалку с екселем в виртуалке записать файл и спокойно рассылать кому надо
#25 by Dilgorp
самый крайний вариант
#26 by Живой Ископаемый
Ну и наконец вишенка на торте, все что написано в Можно было сделать вот так: И тогда бы был правильный ХМЛ, все числа в котором Ексель интерпретировал бы исключительно как число
#27 by magicSan
сделай запятую вместо точки
#28 by Аня Анютка
попробовала, кислая вишня, вообще непонятно что получается при открытии Excelem
#29 by МимохожийОднако
Научи директора менять формат колонок или установи на сервер Excel
#30 by Живой Ископаемый
А вы говорите, все равно какое расширение, Ексель это позволяет. Тупой ваш Ексель.
#31 by Живой Ископаемый
Даже ХМЛ файл не может открыть...
#32 by Аня Анютка
нашла.. я так поняла, что добавляют листы всетки через application. Но на сервере нет Excel, так что не получится ((
#33 by Аня Анютка
Испробовала все способы. Все-таки, когда из 1С сохраняешь сразу в Excel, то создается одна страница. Да, потом можно добавить лист (например, Shift+F11), но как тогда вернуться к первому - непонятно. Если выводит все на печать, то видно, что первый лист не потерялся, но закладок (внизу) для перехода по листам нет. И как переключаться или как их добавить я не нашла. В общем, в данной конкретной ситуации помог совет . Добавила программную замену точек на запятые, теперь все числа стали числами :) По крайней мере, Excel распознает их как таковые и формулы считает. Вот код:
#34 by Аня Анютка
Прошу прощения, но почему-то код не отформатировался, хотя заключила его в тэги [1C][/1С]
#35 by b_ru
>>Все-таки, когда из 1С сохраняешь сразу в Excel, то создается одна страница. Да, потом можно добавить лист (например, Shift+F11), но как тогда вернуться к первому - непонятно. Это самый обычный файл экселя, просто заголовки листов скрыты.
#36 by Аня Анютка
вот ведь.... век живи... век учись! спасибо!
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С