Форум: "Основная";
Текущий архив: 2005.12.11;
Скачать: [xml.tar.bz2];
ВнизКаким способом проще всего вытянуть данные из ячеек Excel в Delph Найти похожие ветки
← →
ANB © (2005-11-15 13:55) [0]Нужно обработать (проверить) лист (отчет в виде xls файла) из делфи. При этом на машине может быть любая версия офиса. Сам файл версии 95/97.
Каким способом легче воспользоваться ?
← →
КиТаЯц © (2005-11-15 14:01) [1]Вопрос с бородой. отвечать лень (Поиск).
← →
guru-guru © (2005-11-15 14:09) [2]Для того, чтобы можно было работать с любой версией офиса, ты должен использовать пзднее связывание.
var
ServerIsRunning:boolean;
Unknown:IUnknown;
Result:HResult;
AppProgID: string;
App:Variant;
x,y,num:integer;
Doc,FileName,s:String;
sqlfrm:string;
t:integer;
begin
AppProgID:="Excel.Application";
ServerIsRunning:=false;
Result:=GetActiveObject(ProgIDToClassID(AppProgID),nil,Unknown);
if (Result=MK_E_UNAVAILABLE) then
App:=CreateOleObject(AppProgID)
else
begin
ShowMessage("Закройте все копии EXCEL и повторите попытку");
// здесь можно обработать по другому и сможешь работать с уже открытым документом
exit;
end;
try //мы создали объект и его нужно обязательно удалить.
App.Visible:=false;
App.WorkBooks.Open(FileName);
App.ActiveWorkBook.Close(false,prg_path+FileName);
finally
if not ServerIsRunning then App.quit;
App:=Unassigned;
end;
end;
← →
guru-guru © (2005-11-15 14:12) [3]Чтобы считать данные из екселя
s:=App.WorkBooks[1].WorkSheets["Лист1"].Cells[1,1].Value
Чтобы записать данные в екселApp.WorkBooks[1].WorkSheets["Лист1"].Cells[1,1].Value:="А Я УЖЕ ТУТ!!!"
← →
ANB © (2005-11-15 14:18) [4]
> КиТаЯц © (15.11.05 14:01) [1]
Так я только способ спрашиваю - может проще в CSV формат выгрузить, или через ODBC подключить.
> guru-guru © (15.11.05 14:09) [2]
Спасибо за пример. А этот способ быстро работает (листы могут быть немаленькие) ?
← →
guru-guru © (2005-11-15 14:30) [5]Способ не самый быстрый. Но зато работает с любым офисом. А если тебе скорость нужна, то тебе только ОДБЦ юзать. (формат файла ХЛС я не встречал).
А если CSV выгрузишь, то вообще можно будет без офиса юзать и скорость будет большая.
Я использую позднее связывание - простота использования, а файлы у меня не такие уж и большие + возможность использования всех возможностей Екселя: диаграммы, формулы, и т.д. и все через делфи.
← →
Stakan © (2005-11-15 14:37) [6]http://www.delphikingdom.com/asp/viewitem.asp?catalogid=249
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=272
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=313
Занимательные статьи как раз по теме
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.12.11;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.033 c