Имя: Пароль:
1C
1С v8
сохранение Excel
, ,
0 lubja
 
17.08.11
15:21
народ, подскажите, пжлста!
есть екселевский файл с макросами. я в файл вношу изменения и хочу записать. вопрос в следующем: как сохранить и мои изменения, и макросы?
код примерно следующий:

Попытка
  ExcelПриложение = Новый COMObject("Excel.Application");
  ExcelФайл = ExcelПриложение.Workbooks.Open(Файл);
  ExcelЛист = ExcelФайл.Sheets(1);
Исключение
  Сообщить("Ошибка при загрузке Microsoft Excel." + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание);
  Возврат;
КонецПопытки;

//изменения этого файла
.....

//здесь я перепробовала разные варианты
ExcelПриложение.DisplayAlerts = Ложь;
Попытка
  //ExcelЛист.SaveAs(Файл);
  //ExcelЛист.Save();
  //ExcelФайл.SaveAs(Файл);
  //ExcelФайл.Save();
  //ExcelПриложение.SaveAs(Файл);
  //ExcelПриложение.Save();
Исключение
  Сообщение = Новый СообщениеПользователю;
  Сообщение.Текст = "Не удалось сохранить файл!";
  Сообщение.Сообщить();
КонецПопытки;
1 lubja
 
17.08.11
15:23
+ у меня получается, что либо файл с моими изменениями, но без макросов, либо с макросами, но без изменений...
2 mzelensky
 
17.08.11
15:25
(0) А что меняешь то???
3 lubja
 
17.08.11
15:26
(2) те варианты, которые я в попытке перепробовала возвращают (1)
4 mzelensky
 
17.08.11
15:28
Сделай для начала так:

ДокументExcel = Новый COMОбъект("Excel.Application");
ДокументExcel.Visible = True;

и погляди что у тебя вообще с этим файлом экселевским. Данные тобой внесенные корректны или нет
5 mzelensky
 
17.08.11
15:29
Вот это "ДокументExcel.Visible = True;" нужно в самом конце, когда уже все сделала - показываешь его на экране
6 lubja
 
17.08.11
15:31
(5) данные и макросы есть.
7 mzelensky
 
17.08.11
15:32
я так делал:

Ех = Новый COMОбъект("Excel.Application");    // пытаемся открыть базу

....

Книга = Ех.WorkBooks.Open(Элементыформы.ПолеИмениФайла.Значение);

...

Книга.SaveAs(Элементыформы.ПолеИмениФайла.Значение);
Книга.close();
Ех.WorkBooks.close();
Ех=неопределено;
8 lubja
 
17.08.11
15:36
(7) к сожалению, при попытке открыть этот файл после обработки выдает сообщение, что "действительный формат открываемого файла отличается от указываемого его расширением имени файла. перед открытием данного файла убедитесь, что он не поврежден и получен из надежного источника. открыть этот файл сейчас?". и если нажимаю да, то мои данные есть, макросов нет...
9 mzelensky
 
17.08.11
15:39
(8) ну эт ты уже макросы юзай....фишка именно в них, а не в способе сохранения экселя.

макросы что делают вообще?
10 lubja
 
17.08.11
15:41
(9) а хз... файл прислал банк. сказали, чтобы именно в этот файл вносили изменения (типа, копирование не хляет). а что делают макросы - не моя забота))
11 mzelensky
 
17.08.11
15:48
(10) так может там тупо стоит защита от программного редактирования??? такое бывает!
12 mzelensky
 
17.08.11
15:49
попробуй программно просто добавить число в пустую ячейку экселя и сохранить.
13 lubja
 
17.08.11
15:52
(12) тут мысль одна появилась... как сохранить (программно) файл с типом именно xls? просто если я делаю в конце ДокументExcel.Visible = True и сохраняю руками файл именно в этом формате, то все вроде бы остается (и изменения, и макросы)
14 mzelensky
 
17.08.11
15:54
(13) ну я так полагаю:

Книга.SaveAs("Имя файла.xls");

Иначе формат программно не пробовал выставлять
15 mzelensky
 
17.08.11
15:56
(13) гляди свойства "SaveAs"
16 lubja
 
17.08.11
16:02
спс. попробую.