Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.11.14;
Скачать: [xml.tar.bz2];

Вниз

Delphi & Excel   Найти похожие ветки 

 
Mad_Ghost   (2002-11-04 15:08) [0]

Здравсвтвуйте уважаемые мастера.
Подскажите пожалуйста, как мне поработать с файлом Excel?
нужно, определить сколько листов всего в книге, сколько максимально заполнено в листе, (если такое конечно есть).

Вот, нужно парсить файл, не с четкой структурой, т.е. я изначально не знаю сколько там листов, сколько информации в листе, просто нужно открыть, достать, и проанализировать, подскажите пожалуйста, как узнать скока листов?
и как обращаться потом к этому листу отдельно по ячейкам?

заанее большое спасибо


 
Lord Warlock   (2002-11-04 15:15) [1]

Посмотри на королевстве Дельфи статьи "По волнам интергации..."


 
Карелин Артем   (2002-11-04 15:28) [2]

Ето делается через коллекции интерфейсов:
...
var Excel:variant;
...
Excel:=CreateOleObject("Excel.Application");
Excel.Visible:=true;
...

WorkBooks[номер книги].WorkSheets.Сount-число листов.
WorkSheets[номер листа] - возвращает текущий лист.
WorkSheets[номер листа].Range.Cells[x,y].value - содержимое ячейки.

Если не понял - пиши, отвечу.


 
Mad_Ghost   (2002-11-04 15:45) [3]

спасибо все, то, но как WorkBooks[номер книги].WorkSheets.Count;
получается?
т.е. его же определить надо.

и ещё, как можно открыть при этом файл, т.е. нужно файл открыть, и его уже парсить, за ответ благодарен. заранее ;)


 
Карелин Артем   (2002-11-04 15:56) [4]

Excel.WorkBooks[номер книги].WorkSheets.Count

Про загрузку с ходу не могу выдать - все доки (сам делал) дома.

Открой файл excel.exe(2000& XP) или excel*.olb(более старые версии) как библиотеку типов из !дельфи! и там ищи в интерфейсе WorkBook.


 
¤NoNaMe¤   (2002-11-04 16:22) [5]

Вот пример:

var
cls_ExcelObject:string;
regData:TRegistry;
Excel,WorkSheet:OleVariant;
i,j:integer;
begin
cls_ExcelObject := "Excel.Application";
//Определение установленной версии Exel
regData := TRegistry.Create;
regData.RootKey := HKEY_CLASSES_ROOT;
try
if regData.OpenKey("\Excel.Application\CurVer", False) then
begin
cls_ExcelObject := regData.ReadString("");
regData.CloseKey;
end
finally
regData.Free;
end;
//========================
try
Excel:=CreateOleObject(cls_ExcelObject);
Excel.Visible:=false;//Делаем невидимым
Excel.WorkBooks.Open(FileName);
WorkSheet:=Excel.WorkBooks[1].WorkSheets[1];
//Читаем содержимое в StringGrid
StringGrid1.ColCount:=WorkSheet.Cells.CurrentRegion.Columns.Count;
StringGrid1.RowCount:=WorkSheet.Cells.CurrentRegion.Rows.Count;
for i:=1 to WorkSheet.Cells.CurrentRegion.Columns.Count do
for j:=1 to WorkSheet.Cells.CurrentRegion.Rows.Count do
begin
StringGrid1.Cells[i-1,j-1]:=VarToStr(WorkSheet.Cells[j,i]);
end;
//===============================
Excel.Workbooks.Close;


 
Mad_Ghost   (2002-11-05 08:17) [6]

ух ты спасибо большое, ты общественности такое большое дело сделал, вовек не забуду, рулез. а не знаещь, где можно про все эти функции почитать, чтобы дополнить и без того полную картинку?



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.11.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
14-46127
Envad
2002-10-28 00:03
2002.11.14
Как подключиться к базе данных Oracle, используя Midas


4-46206
PeteDm
2002-10-05 22:10
2002.11.14
Поиск файлов


7-46163
AndrewK
2002-09-12 17:28
2002.11.14
Как заставить работать связь между модемами?


4-46212
Dennnis
2002-10-03 10:33
2002.11.14
консоль


8-46003
PycUS
2002-07-01 22:11
2002.11.14
Звуки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский