|
|
Вывод в Excel данных в заданном формате |
☑ |
|
0
Garnet27
10.11.15
✎
12:29
|
Подскажите, пожалуйста, может быть, кто-то знает. Выгружаю большое количество данных в Excel. Для дальнейшей с ними работы необходимо, чтобы некоторые из ячеек были в текстовом формате. Но в этих ячейках стоят цифры. При открытии файла Excel на этих ячейках стоит зеленый треугольник и ошибка "Число в этой ячейке отформатировано как текст". Как избежать этой надписи? Отключить в настройках проверку, чтоб ее было просто не видно - не подходит. Можно ли убрать ее как-то по-другому? Выгрузиться без этой ошибки? Заранее большое спасибо.
|
|
|
1
Garnet27
10.11.15
✎
12:31
|
Даже вручную уже копирую в столбец рядом следующую конструкцию: ""&[номерячейки] - все супер, ошибка уходит. Но формулы в файле не должны быть, делаю - копировать - вставить значение - снова та же ошибка! Замкнутый круг...(((
|
|
|
2
Garnet27
10.11.15
✎
12:33
|
Таким образом:
Для Индекс = 2 По ВсегоСтрок Цикл
ЯчейкаЛС = Book.WorkSheets(1).Rows.Item(Индекс).Columns(2);
ТекущееЗначение = ЯчейкаЛС.Text;
ЯчейкаЛС.NumberFormat = "@";
...
КонецЦикла
|
|
|
3
Мимохожий Однако
10.11.15
✎
12:43
|
='ТвоёЗначениеСтрокой.
поставь вперед апостроф
|
|
|
4
Garnet27
10.11.15
✎
12:48
|
(3) ну...будет мое число и апостроф впереди, без ошибки. А нужно именно число. Или я не там ставлю?
|
|
|
5
cw014
10.11.15
✎
12:48
|
А как ты число туда заносишь?
|
|
|
6
Garnet27
10.11.15
✎
12:50
|
(5) выгрузкой из 1С, обычной, через COM
|
|
|
7
Альбатрос
10.11.15
✎
12:50
|
(4) Ексель.Range(Область).NumberFormat = "@";//ставим текст
Ексель.Range(Область).NumberFormat = "0";//число
|
|
|
8
cw014
10.11.15
✎
12:51
|
(6) Код покажи млин. Ты что, во что и каким образом пихаешь?
|
|
|
9
Garnet27
10.11.15
✎
12:54
|
Ну вот...
Эксель = Новый COMОбъект("Excel.Application");
НайденныеФайлы = НайтиФайлы(Объект.КаталогВыгрузки, Файл.Ключ);
Для каждого Стр Из НайденныеФайлы Цикл
ИмяФайла = Стр.ПолноеИмя;
Book = Эксель.Workbooks.Open(ИмяФайла);
Лист = Book.WorkSheets(1);
ВсегоСтрок = Лист.Cells(1,1).SpecialCells(11).Row;
Для Индекс = 2 По ВсегоСтрок Цикл
ЯчейкаЛС = Book.WorkSheets(1).Rows.Item(Индекс).Columns(2);
ТекущееЗначение = ЯчейкаЛС.Text;
ЯчейкаЛС.NumberFormat = "@";
//дальше очень много ячеек с заменой формата
КонецЦикла;
Book.Save();
КонецЦикла;
Эксель.WorkBooks.Close();
|
|
|
10
Garnet27
10.11.15
✎
12:56
|
файл экселевский уже существует. Я его просто еще раз обрабатываю под требование заказчика. Ему нужны определенные форматы в определенных ячейках. Из 1С изначально выгружается как общий формат, через хранилище.
|
|
|
11
dk
10.11.15
✎
13:19
|
вроде рабочий код в (9)
все равно вопрос при открытии задает? Формат исходных файлов какой?
|
|
|
12
Garnet27
10.11.15
✎
13:32
|
(11) вопрос не при открытии... просто ячейки некоторые с ошибкой отображаются. Все работает, но не так, как нужно. Формат .XLSX
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший