![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с чтением данных из Excel
rel_ © (2005-11-30 00:55:00)Я читаю данные из файла Excel самым примитивным образом. Типа:
lExcelApp := CreateOleObject('Excel.Application');
lExcelApp.Workbooks.Open(fileName);
lWorkSheet := lExcelApp.Workbooks[ExtractFileName(fileName)].WorkSheets[1];
lRange := lWorkSheet.UsedRange;
затем из lRange.Value беру данные.
Так вот проблема - для одних файлов это стабатывает, для других - нет.
Мастера, может это известная проблема - подскажите как уж действительно наверняка можно прочитать данные.
umbra (2005-11-30 15:00:00) [1]логика подсказывает, что надо от объединенных ячеек избавиться, перед тем, как
UsedRangeполучать. Но если заранее неизвестно, какие ячейки объединенные, то потом непонятно, в каких ячейках просто ничего нет, а в каких ничего нет, потому что они были обединены
Digitman (2005-11-30 14:21:00) [2]даже при полностью пустом раб.листе обращение к
activesheet.usedrange.cells.count
вернет 1
проверь это в окне отладки в Excel Visual Basic и убедись сам
а раз 1 увидел, то usedrange-объект при этом заведомо не Null
rel_ (2005-11-30 14:05:00) [3]Так данные правильно наверное беру.
В ряде случаев работает.
А в ряде случаев - просто получаю пустую lRange.Value : VarIsEmpty(lRange.Value).
Даже когда начинаю читать прочто из ячеек - там ничего нет.
Хотя открываю документ - там определённо содержатся данные.
Единственная особенность документа - некоторые ячейки замержены.
Просто каким образом мне *наверняка* можно прочитать документ?
umbra (2005-11-30 11:34:00) [4]
> для одних файлов это стабатывает, для других - нет
это может не сработать, если в книге нет листов с данными, а только диаграммы, нетданных на первом листе, или если у листов с даннымиVisible = xlVeryHiddenили по десятку других причин. Так навскидку ничего сказать нельзя
vvvaaa (2005-11-30 10:31:00) [5]>затем из lRange.Value беру данные.
Каким именно образом береш эти данные?