// Маленькая процедурка -- на которой я тестировал вообще коннект к Excel procedure TForm1.ButtonClick(Sender: TObject); var Excel : Variant; WorkSheet : Variant; I, J : Integer; begin if OpenDialog.Execute thenbegin Excel := CreateOleObject( InputBox('OleStr', 'CreateOleObject', 'Excel.Application.8') ); Excel.Visible := False; Excel.Workbooks.Open( OpenDialog.FileName ); WorkSheet := Excel.Workbooks[1].WorkSheets[1]; ListView.Columns.Clear; ListView.Items.Clear; for I := 1 to WorkSheet.Cells.CurrentRegion.Columns.Count do
ListView.Columns.Add.Caption := VarToStr( WorkSheet.Cells[1,I]
); for I := 1 to WorkSheet.Cells.CurrentRegion.Rows.Count do with ListView.Items.Add dobegin Caption := VarToStr( WorkSheet.Cells[I,1] ); for J := 2 to WorkSheet.Cells.CurrentRegion.Columns.Count do SubItems.Add( VarToStr( WorkSheet.Cells[I,J] )); end; Excel.Workbooks.Close; Excel.Quit; end; end;
{ Кусочки из программы, которая читала Excel и кидала дату в SQL базу, Прога была одаптирована к конторской конкретике, поэтому целиком её кидать бессмысленно. }
//Коннект... С простой мыслей о том что неизвесто с какой именно // версией объекта придется работать procedure
TEnemaDM.ConnectToExcelServer(FileName: String); var<
/b> Reg : TRegIniFile; begin !
R
eg := TRegIniFile.Create( 'SOFTWARE\'); if (FileExists( FileName ))and (UpperCase(ExtractFileExt( FileName )) = '.XLS' ) then try if VarIsEmpty( Excel ) thenbegin Excel := CreateOleObject( Reg.ReadString( 'Enema','Excel', 'Excel.Application.8' )); endelsebegin Excel.Workbooks.Close; end; Excel.Visible := False; Excel.Workbooks.Open( FileName ); finally Reg.Free; end; end;
//Пример загрузки списка листов таблицы // Ейный вызов MainForm.LoadLists(Excel.Workbooks[1] ); // -- я предпологаю что открыт 1 файл... procedure TMainForm.LoadLists(WorkBooks: Variant); var I : Integer; begin if not VarIsNull( WorkBooks ) thenbegin ExcelListBox.Items.Clear; // TComboBox for I := 1 to WorkBooks.WorkSheets.Count dobegin ExcelListBox.Items.Add( VarToStr( WorkBooks.WorkSheets[I].Name )); end; end; end;
// Сама процедура загрузки перекачивает данные в некую хранимую процедуру //
Вызывалась как LoadExcel( Excel.Workbooks[1].WorkSheets[MainForm.CurrentList] )
procedure TEnemaDM.LoadExcel( WorkShe!
et : Var
iant ); var I : Integer; ErrorList : TStrings; begin with MainForm do try ErrorList := TStringList.Create; try for I := 1 to WorkSheet.Cells.CurrentRegion.Rows.Count dobegin try ХранимаяПроцедура.ParamByName( параметр ).AsString := VarToStr( WorkSheet.Range[наименование региона в символах Excel. см Help].Cells[I,1] ); ХранимаяПроцедура.ExecProc; except on E : Exception do ErrorList.Add( GetErrorCurrentValue +
#32 + E.Message ); end; &nb
sp; end; if ErrorList.Count = 0 then MessageDlg( 'Данные успешно успешно загружены' , mtInformation, [mbOk], 0 ) else ФормочкаДляОшибок.SetErrorList( ErrorList ); finally ErrorList.Free; end; except on E : Exception do MessageDlg( E.Message, mtError, [mbOk], 0 ); end; end;
Коментарий от Yur Ovchinnikov (yur@sammit.kiev.ua)
cls_ExcelObject := 'Excel.Application'; regData := TRegistry.Create; regData.RootKey := HKEY_CLASSES_ROOT; try if regData.OpenKey('\Excel.Application\CurVer', False) then begin cls_ExcelObject := regData.Rea
dString('') regData.CloseKey; &n!
bsp; &nb
sp; end finally regData.Free; end;
Это для того, чтобы не применять локальные для каждой версии названия "Excel.Application.8", "Excel.Application.9". Ко всему прочему приведенный пример не работает с Excel95.
Объектная модель AutoCad применительно к языку программирования Delphi
В статье разобраны основные методы работы с AutoCAD через объектную модель. Рассмотрены методы построения и модификации основных объектов. Этих первичных знаний и, само собой, владение техникой черчения в AutoCAD достаточно, чтобы самостоятельно продолжить освоение СОМ модели AutoCAD и создавать утилиты, помогающие вам в работе.
Передача данных. 4-е изд.
В этой книге рассматриваются фундаментальные понятия и концепции такой быстроразвивающейся области знаний, как передача информации, даются базовые сведения о протоколах передачи данных, модели OSI, Интернете, топологии сетей. Не обойдены вниманием и современные технологии передачи данных: высокоскоростные, широковещательные и беспроводные сети, распределенные приложения и электронная коммерция, освещаются вопросы безопасности. Книга может быть использована в качестве учебного пособия для студентов, изучающих компьютерные сети и технологии передачи данных, специалистам и менеджерам, работающим в сфере компьютерных технологий.
Автор: Столлингс В.
Опрос населения :)
Стоит ли устраивать встречи программистов в реале? (пирушки :)
Хокку дня
Утро. Мы не слышим друг друга За запахом кофе.
Афоризмы
В сердцах кому-нибудь грубя, ужасно вероятно однажды выйти из себя и не войти обратно....
Фраза дня
Функция хвоста рыбы - рулезная!
Дурацкие законы (информация предоставлена сайтом kurilka.com)
В Нью Хемпшире (США) в ресторанах и кафе запрещается стучать ногой, качать головой или настукивать пальцами по столу в такт музыке.
В городе Кармел в Калифорнии (США) считается преступлением есть мороженое стоя на тротуаре.
И на закуску коротенький анекдот
Бетховен сел за клавесин и начал быстpо набиpать 6-ю сонатy.