Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как ускорить чтение из Excel

11K
07 июля 2005 года
Crishna
6 / / 28.06.2005
Из внешней программы (VB .NET) читается из листа EXcel следующим образом

Xls = CreateObject("Excel.Application")
oXls.Workbooks.Open(TextBox1.Text)

for i = 1 to j
...= oXls.Cells.Range("a" & CStr(i)).Formula
next i

j что-то около 20000

и лист считывается около 10 минут!

как ускорить чтение?
2.0K
07 июля 2005 года
Meh&VB
28 / / 20.03.2003
Попробуй встроенными функциями(типа Activecell.Next .. ) передвигаться по ячейкам и явно опиши тот лист, на котором находишься.
7.1K
07 июля 2005 года
likhobory
87 / / 18.05.2005
попробуй cкинуть в массив
 
Код:
Dim arr()
''''''''''''''''''''
arr = oXls.ActiveCell.EntireColumn.Range("a1:a" & J ).Formula
11K
07 июля 2005 года
Crishna
6 / / 28.06.2005
Цитата:
Originally posted by likhobory
попробуй cкинуть в массив
 
Код:
Dim arr()
''''''''''''''''''''
arr = oXls.ActiveCell.EntireColumn.Range("a1:a" & J ).Formula



говорит

"An unhandled exception of type 'System.InvalidCastException' occurred in MNK.exe

Additional information: Specified cast is not valid."

7.1K
07 июля 2005 года
likhobory
87 / / 18.05.2005
Цитата:
Originally posted by Crishna
говорит

"An unhandled exception of type 'System.InvalidCastException' occurred in MNK.exe

Additional information: Specified cast is not valid."


 
Код:
Dim Xls, arr(,) As Object
        Xls = CreateObject("Excel.Application")
        Xls.Workbooks.Open(TextBox1.Text)
        '''''''''''''''''''''''
        Xls.range("a1").select()
        arr = Xls.ActiveCell.EntireColumn.Range("a1:a" & J).Formula

вроде бы так...
11K
07 июля 2005 года
Crishna
6 / / 28.06.2005
Цитата:
Originally posted by likhobory
 
Код:
Dim Xls, arr(,) As Object
        Xls = CreateObject("Excel.Application")
        Xls.Workbooks.Open(TextBox1.Text)
        '''''''''''''''''''''''
        Xls.range("a1").select()
        arr = Xls.ActiveCell.EntireColumn.Range("a1:a" & J).Formula

вроде бы так...



Спасибо огроменное!

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог