|
Программно созданный документ Excel открывается с ошибкой | ☑ | ||
---|---|---|---|---|
0
Vvvvv
03.12.14
✎
10:20
|
Программно создаю Excel, приду фрагмент
Попытка Книга = ExelПриложение.WorkBooks.Open(ИмяКаталогаИмпорта + "\prcislink.xls"); Исключение Книга = ExelПриложение.Workbooks.Add(); КонецПопытки; Лист = Книга.WorkSheets(1); Лист.Name = "Text1"; //.... // Заполняю программно файл //... Книга.SaveAs(ИмяКаталогаИмпорта + "\prcislink.xlsx"); ExelПриложение.Quit(); Файл создан, даже открывается, но битый какой то. Может надо какое то свойство дописать? http://www.image123.net/ku2q9rvtb1t8pic.html |
|||
1
Wobland
03.12.14
✎
10:25
|
из всего кода работы с екселем ты решил показать именно эти два куска. нормально
|
|||
2
Armando
03.12.14
✎
10:25
|
Открываешь xls, сохраняешь xlsx
|
|||
3
Vvvvv
03.12.14
✎
10:27
|
(2) Я перед тем, как запустить обработку, сначала удаляю старый документ. т.е. он не открывается, а создается.
|
|||
4
Vvvvv
03.12.14
✎
10:28
|
(1) А остальная часть, это обычное заполнение. Там очень много, что бы показывать.
Я думал, я в этом забыл что то дописать. Например, при сохранении не надо какие нибудь свойства прописать? |
|||
5
18_plus
03.12.14
✎
10:32
|
(3) тип при сохранении определяется не расширением, его явно указывать надо.
|
|||
6
18_plus
03.12.14
✎
10:33
|
||||
7
Vvvvv
03.12.14
✎
10:44
|
(6) читаю и не пойму, к чему это
|
|||
8
18_plus
03.12.14
✎
10:53
|
(7) вроде всё по-русски
2-й параметр FileFormat Тип: System.Object Одно из значений XlFileFormat, указывающих формат файла для использования при сохранении файла. Для существующего файла используемым по умолчанию форматом является последний заданный для этого файла формат, для нового файла — формат используемой версии Excel. если ткнуть в XlFileFormat - увидишь допустимые значения. ну и сразу скажу, что псевдонимов этих 1с не не знает, их нужно заменить циферками, найти значения поможет поиск. |
|||
9
AdrianBerk
03.12.14
✎
10:56
|
(8) (7) а вот и циферки кажись http://msdn.microsoft.com/en-us/library/office/ff198017(v=office.15).aspx
|
|||
10
18_plus
03.12.14
✎
10:58
|
||||
11
Vvvvv
03.12.14
✎
11:03
|
(8),(9),
Нужно выбрать цифру. Но какую, они вроде все для Excel. И как я понимаю нужно поставить, когда буду записывать файл. Книга.SaveAs(ИмяКаталогаИмпорта + "\prcislink.xlsx",XXX); Правильно понял. Можете все таки подсказать, что за цифра должна быть? |
|||
12
Vladal
03.12.14
✎
11:05
|
(11) Так прочитай все буквы по ссылке:
|
|||
13
Vvvvv
03.12.14
✎
11:25
|
(12)
Книга.SaveAs(ИмяКаталогаИмпорта + "\prcislink.xlsx",56); или Книга.SaveAs(ИмяКаталогаИмпорта + "\prcislink.xlsx",43); это не работает, во втором случаи вообще ошибка. |
|||
14
ВРедная
03.12.14
✎
11:41
|
Попробуй выполнить только этот код:
Попытка Книга = ExelПриложение.WorkBooks.Open(ИмяКаталогаИмпорта + "\prcislink.xls"); Исключение Книга = ExelПриложение.Workbooks.Add(); КонецПопытки; Лист = Книга.WorkSheets(1); Лист.Name = "Text1"; Книга.SaveAs(ИмяКаталогаИмпорта + "\prcislink.xlsx"); ExelПриложение.Quit(); Не заполняя. Если ошибки не будет - значит проблема в коде заполнения. |
|||
15
dk
03.12.14
✎
11:42
|
у тебя версия екселя какая?
|
|||
16
Vvvvv
03.12.14
✎
11:44
|
(14) Эта отдельная часть кода работает.
(15) 2010 года |
|||
17
Vvvvv
03.12.14
✎
12:17
|
Нашел в чем ошибка.
Закомментировал все строчки, которые изменяют формат ячейки: Лист.Cells(СтрокаЛиста, 1).NumberFormat = "@"; Без этих строчек, файл не битый. Но мне нужно менять формат. т.к. я выгружаю код, например "00000547", что бы он не оказался "547" Подскажите, чем можно заменить? |
|||
18
Wobland
03.12.14
✎
12:19
|
(17) а есть что-то похожее на (6), но про нумберформат?
|
|||
19
Vvvvv
03.12.14
✎
12:25
|
(18) в интернете, про изменение формата, все время нахожу строку, подобную:
Лист.Cells(СтрокаЛиста, 1).NumberFormat = "@"; |
|||
20
dk
03.12.14
✎
12:31
|
странно что нумберформат падает
можно обойти ...Value = "'" + "000547" |
|||
21
Vvvvv
03.12.14
✎
12:47
|
(20) нет, так тоже не получается
Лист.Cells(СтрокаЛиста,15).Value= " "+001010+" "; в итоге записывается как: 1 010, формат ячейки "общий" |
|||
22
DS
03.12.14
✎
14:16
|
Запись макросов пора бы для себя уже открыть.
|
|||
23
Vvvvv
03.12.14
✎
15:04
|
(22) Как это сделать в 1с?
Можешь подсказать |
|||
24
DS
03.12.14
✎
15:21
|
(23) Сделать в екселе запись в макрос необходимых действий. Посмотреть на содержание записанного макроса. Написать код в 1с.
|
|||
25
Vvvvv
03.12.14
✎
17:45
|
(24) Весь день искал, ничего не нашел. Никогда такого не делал. Можешь дать образец.
|
|||
26
Ndochp
03.12.14
✎
18:03
|
(21)
не Лист.Cells(СтрокаЛиста,15).Value= " "+001010+" "; а Лист.Cells(СтрокаЛиста,15).Value= " "+"001010"+" "; |
|||
27
Ndochp
03.12.14
✎
18:10
|
Кстати, если длина одинаковая, то можно в 2010
NumberFormat = "0000000" ставить. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |