|
Интеграция с Excel | ☑ | ||
---|---|---|---|---|
0
Lohmatiy
31.07.14
✎
14:43
|
Коллеги, добрый день!
Мучаюсь со старой как мир проблемой. Называется она "интеграция с Excel". Что, собственно, хочу сделать. У меня есть два файла Excel, из которых мне нужно подтянуть данные. Я делаю, вкратце, следующее: Excel = Новый COMОбъект("Excel.Application"); Excel.AskToUpdateLinks = Ложь; Excel.DisplayAlerts = Ложь; Excel.Visible = Ложь; РабочаяКнига = Excel.Workbooks.Open(ПутьКФайлу); // обработали ее всячески РабочаяКнига.Close(); РабочаяКнига = Неопределено; РабочаяКнига = Excel.Workbooks.Open(ПутьКФайлу2); // опять же обрабатываем РабочаяКнига.Close(); РабочаяКнига = Неопределено; Excel.Quit(); Excel = Неопределено; Что происходит на деле. Сначала открывается эксель. Соответственно, в диспетчере задач видно, что завелся один процесс, потом после закрытия рабочей книги процесс остается. При открытии второй книги появляется новый процесс. Система в этот момент еще жива. Зато при попытке закрыть вторую книгу она намертво виснет до тех пор, пока я не убью оба этих процесса. Что же мне делать, если очень хочется открывать обе книги? |
|||
1
fmrlex
31.07.14
✎
14:55
|
Будь мужиком, делай как Маня. Открой файл экселя архиватором, достань xml'ки и работай напрямую.
|
|||
2
andreymongol82
31.07.14
✎
15:00
|
ADODB наше все!
|
|||
3
fmrlex
31.07.14
✎
15:01
|
||||
4
_fvadim
31.07.14
✎
15:03
|
отключи предупреждения или сделай РабочаяКнига.saved = истина
возможно эксель там вопросы задаёт - проверить чо он хочет можно, если не прятать его в самом начале Excel.Visible = истина; |
|||
5
andreymongol82
31.07.14
✎
15:05
|
(3) А вдрух у него там у Excel старый-старый. 97 например)))
|
|||
6
Lohmatiy
31.07.14
✎
15:07
|
(1) долго, там большие объемы
(2) нет))) (4) предупреждения, как раз, отключены. Через Saved сейчас попробую. (5) нет, XL 2013 на одной машине и 2010 на другой. |
|||
7
Garykom
гуру
31.07.14
✎
15:07
|
(0) ну сделай ты Excel.Visible = Истина;
и будет тебе счастье... ЗЫ хотя положено ссылки (переменные) еще очистить после закрытия excel'я )) |
|||
8
Garykom
гуру
31.07.14
✎
15:08
|
(7) глянул код в (0) эта не делай так закрывай ексель и открывай заново после каждого файла...
|
|||
9
_fvadim
31.07.14
✎
15:10
|
(8) это ещё зачем? оно и с одним экселем прекрасно работает.
|
|||
10
Repey
31.07.14
✎
15:11
|
А как при работе с десятым екселем можно использовать метод "SaveAs" ?
|
|||
11
_fvadim
31.07.14
✎
15:11
|
(9) +
писал программульку для печати 100500 экселек (не на 1с). каждый раз эксель открывать/закрывать - лишний тормоз. |
|||
12
Lohmatiy
31.07.14
✎
15:16
|
(11) Saved помогло, супер! Спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |