0
Ampfer
06.02.17
✎
11:53
|
Обращаюсь за помощью к спецам.
Есть обработка, которая открывает Excel файл, создает там листы, прописывет в них цифры.
Листы создаются, цифры прописываются, но файл не сохраняется
Эксель = Новый COMОбъект("Excel.Application");
Эксель.Displayalerts = 0;
КнигаЭксель = Эксель.WorkBooks.Open(Объект.ИмяФайла);
ПоследнийЛист = Эксель.Worksheets(Эксель.Worksheets.Count);
ЛистЭксель = Эксель.WorkSheets.Add(Null,ПоследнийЛист,Null,Null);
// заполнение и вставка в Excel
Попытка
Эксель.DisplayAlerts = Ложь;
КнигаЭксель.ActiveSheet.UnProtect();
КнигаЭксель.SaveAs(Объект.ИмяФайла);
КнигаЭксель.Close();
Сообщить(" Готово!");
Исключение
Сообщить(ОписаниеОшибки()+" Файл не сохранен!");
Ну никак не сохраняет оператором КнигаЭксель.SaveAs(Объект.ИмяФайла);
В отладчике слежу за свойством КнигаЭксель.ReadOnly всегда Ложь
Куда бы не ставил КнигаЭксель.SaveAs(Объект.ИмяФайла). После его прохождения, пытаюсь открыть файл,
Выдается сообщение Только Для Чтения, открываю для Чтения, он в первозданном виде (до исзменений).
В отладчике смотрю Эксель.Workbooks(1).Worksheets(5).Cells(a,b) Там все нормально Листы есть, цифры в клетках тоже,
а вот сохранить ну никак!
|
|
2
solarcold
06.02.17
✎
15:39
|
Простите за оффтопик, но вспомнил забавный случай с экселем
Хочу сохранить файл с названием например price.xls, выдает ошибку:
Доступ к файлу невозможен. Проверьте следующее:
- в имени файла не содержатся знаки: < > ? [ ] : price.xls или *
|
|
5
Ampfer
06.02.17
✎
17:42
|
Save там нет такого метода.
Пробовал просто куда-нибудь на диск сохранить
КнигаЭксель.SaveAs("C:\USERS\AVG\123fff.xls");
Сохраняет, но пустой. Причем интересно, что при закрытии СOM объекта, ( Эксель.WorkBooks.Close();Эксель.Application.Quit()) процессы все равно висят в Диспетчере, пока не сниму вручную
|
|