資源描述:
《delphi7如何讀取excel文件.doc》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、delphi7如何讀取excel文件用ole讀excel:會讀了后,你自己處理一下要讀的數(shù)據(jù)就行了?var?I,J:Integer;?MaxRow,MaxCol:Integer;?List,Strs:TStringList;?ExcelApp,Sheet:Variant;?OldTime:TDateTime;?begin?List:=TStringList.Create;?Strs:=TStringList.Create;?//創(chuàng)建一個excel的ole對象?ExcelApp:=CreateOleObject("Excel.Appl
2、ication");?try?//打開一個excel文件?ExcelApp.WorkBooks.Open(Edit1.Text);?List.BeginUpdate;?try?//設(shè)置工作區(qū)?ExcelApp.WorkSheets[1].Activate;?Sheet:=ExcelApp.WorkSheets[1];?//有數(shù)據(jù)的區(qū)域的行數(shù)和列數(shù)?MaxRow:=Sheet.UsedRange.Rows.count-1;?MaxCol:=Sheet.UsedRange.Columns.count;?forI:=2toMaxRowdo
3、?begin?Strs.Clear;?forJ:=1toMaxColdo?begin?//獲得excel的數(shù)據(jù)第i行,第j列單元格內(nèi)的數(shù)據(jù)?Strs.Add(Sheet.Cells[i,j].Value);?end;?List.Add(Strs.CommaText);?end;?finally?//關(guān)閉工作區(qū)?ExcelApp.WorkBooks.Close;?List.EndUpdate;?end;?finally?//釋放ole對象?ExcelApp.Quit;?List.Free;?Strs.Free;?end;?end;
4、Delphi控制Excel的方法 1創(chuàng)建Excel文件 要在Delphi中控制Excel,就必須用到OLE自動化?,F(xiàn)在一般采用OLE2來創(chuàng)建OLE對象,當(dāng)激活一個OLE對象時,服務(wù)器程序僅在容器程序內(nèi)部激活,這就是所謂的“就地激活”(in-placeactivation)。創(chuàng)建Excel文件時,先創(chuàng)建一個OLE對象,然后在對象中建立工作表worksheet,如函數(shù)createExcel所示:functioncreateExcel:variant;varv:variant;sheet:variant;beginv:=createo
5、leobject('Excel.Application');//創(chuàng)建OLE對象v.visible:=true;v.workbooks.add(-4167);//添加工作表v.workbooks[1].sheets[1].name:='test';sheet:=v.workbooks[1].sheets['test'];Result:=v;end; 2數(shù)據(jù)表格控制 Excel表格的控制,主要包括數(shù)據(jù)的導(dǎo)入、修改;單元格的合并、邊框的控制;表格的復(fù)制、粘貼等。當(dāng)報表格式一定的情況下,表格的復(fù)制、粘貼顯得尤為重要,這樣,可以先制作一個
6、文件模板,然后按照實際需要輸出多頁報表即可?! 。?)數(shù)據(jù)的導(dǎo)入(importData)procedureimportData;varI,j:integer;v:variant;beginv:=createExcel;//創(chuàng)建Excel文件testforI:=0tomaxcolumndobeginforj:=0tomaxrowdov.workbooks[1].sheets[1].cells[I,j]:=I*j;//導(dǎo)入數(shù)據(jù)end;end; ?。?)單元格的合并、邊框的控制(lineStylecontrol) 單元格的合并,是在選定
7、合并范圍的情況下進(jìn)行的。邊框控制可以操作邊框線條的是否顯示。其他方式的控制,可以仿照下面過程進(jìn)行。procedurelineStylecontrol;varv,sheet,range:variant;beginv:=createExecl;sheet:=v.workbooks[1].sheets[1];range:=sheet.range[sheet.cells[1,1],sheet.cells[39,30]];//選定表格range.select;range.merge;//合并單元格range.borders.linestyle
8、:=xlcontinuous;//置邊框線可見range.font.size:=9;//改變表格內(nèi)文本字體大小end; ?。?)表格的復(fù)制與粘貼(copyandPaste)procedurecopyandPaste;varv,shee