Чтение Excel через ADO. Нет данных в строке итогов
balabolkin
Дата: 03.06.2009 17:40:54
В общем тако дело.
При чтении Excel файла через ADO, Delphi не видит данные в итоговой строке.
Вернее значение поля Field[0].AsString='Итого' считываеться, а значения других, в которых находяться итоговые цифры почему-то оказываються пустыми.
Формат данных в этих ячейках отличался от тех что находяться над ними.
Пробовал поиграться форматами(привести к аналогичному над ними). Не помогло. :(
Объединения ячеек нигде нет. В чем может быть проблема?
Delphiguru
Дата: 03.06.2009 20:29:06
Потому что там формула.
Не проще ли вычислять "итого" в коде программы ?
Grayscale
Дата: 03.06.2009 20:30:20
У меня был косяк что не читается столбец если в нем пустые ячейки...
andreymx
Дата: 03.06.2009 22:17:46
попробовал через ОЛЕ - итоги видны.
balabolkin
Дата: 04.06.2009 09:54:46
Delphiguru |
Потому что там формула. Не проще ли вычислять "итого" в коде программы ? |
Нет там никакой формулы. :(
balabolkin
Дата: 04.06.2009 09:56:59
Grayscale |
У меня был косяк что не читается столбец если в нем пустые ячейки... |
Столбец читаеться весь полностью до итоговой цифры. А вот она никак не хочет.
balabolkin
Дата: 04.06.2009 10:15:47
Delphiguru |
Не проще ли вычислять "итого" в коде программы ? |
Итог в коде и так вычисляеться. Но в ТЗ есть пункт в котором указанно что ототбражать нужно как инфу об боработаных строках и их сумме, так и ту которая находиться в самом файле(типа что ниче не прое...).
andreymx
Дата: 04.06.2009 11:02:51
balabolkin,
а все-таки, через OLE не хотите попробовать?
balabolkin
Дата: 04.06.2009 12:00:27
andreymx |
balabolkin, а все-таки, через OLE не хотите попробовать? |
Ну если ADO забороть не получиться прийдеться что-то другое городить. :(
Или итоги вычитывать через OLE.
balabolkin
Дата: 04.06.2009 18:45:16
вобщем проблема решена следующим способом.
после того как начитаный посредством CommandText :='select * from [Лист1$]' RecordSet полностью обработан я его закрываю, переопределяю текст запроса на CommandText :='select * from [Лист1$A810:G811']', делаю снова Open, и чудно после этого получаю значения из Fields[4].AsInteger и Fields[6].AsFloat.
Объяснение такого поведения у меня только одно. Когда выполняеться CommandText :='select * from [Лист1$]', то дойдя до пустой ячейки в следующем стобце, за ячейкой в которой прописано "Итого", выборка данных не производиться(видимо считает что дальше данных нет). Видимо это то о чем и писал []Grayscale[/b].