Delphi怎么取得excel表格中某個格子里的函數
Delphi如何取得excel表格中某個格子里的函數
Delphi如何取得excel表格中某個格子里的函數
------解决方案--------------------
procedure TfmMain.FormCreate(Sender: TObject);
const
xlWorksheet=-4167;
var
i:Integer;
sFilePath:String;
xlsApp:Variant;
begin
try
try
//sFilePath := '\\Datacenter\Public\PaUser\'+FormatDateTime('yyyy',Date)+'年第'+FloatToStr(WeekOfTheYear(Date))+'周電話記錄.xls';
xlsApp:=CreateOLEObject('Excel.Application');
xlsApp.Workbooks.Add(xlWorksheet);
xlsApp.ActiveWorkbook.ActiveSheet.Name:=FormatDateTime('yyyy',Date)+'年第'+FloatToStr(WeekOfTheYear(Date))+'周電話記錄';
//標題行
xlsApp.ActiveWorkbook.ActiveSheet.cells[1,1].Value:='分機';
xlsApp.ActiveWorkbook.ActiveSheet.cells[1,2].Value:='通話日期';
xlsApp.ActiveWorkbook.ActiveSheet.cells[1,3].Value:='時長';
xlsApp.ActiveWorkbook.ActiveSheet.cells[1,4].Value:='電話號碼';
xlsApp.ActiveWorkbook.ActiveSheet.cells[1,5].Value:='話務類別';
//標題行對齊方式
xlsApp.ActiveWorkbook.ActiveSheet.cells[1,1].HorizontalAlignment:=3;
xlsApp.ActiveWorkbook.ActiveSheet.cells[1,2].HorizontalAlignment:=3;
xlsApp.ActiveWorkbook.ActiveSheet.cells[1,3].HorizontalAlignment:=3;
xlsApp.ActiveWorkbook.ActiveSheet.cells[1,4].HorizontalAlignment:=3;
xlsApp.ActiveWorkbook.ActiveSheet.cells[1,5].HorizontalAlignment:=3;
xlsApp.ActiveWorkbook.ActiveSheet.Rows[1].RowHeight:=0.8/0.035; //第一行行高
xlsApp.ActiveWorkbook.ActiveSheet.Range['A1:E1'].Borders[4].Weight:=2;//第一行下劃線
xlsApp.ActiveWorkbook.ActiveSheet.Rows[1].Font.Color:=clRed; //第一行字體顏色
xlsApp.ActiveWorkbook.ActiveSheet.Rows[1].Font.Bold :=True; //
with ADS_GetTELRec do
begin
Active:=False;
CommandText:=' Select ExtentionNo,[DateTime],Long,a.TelNo,'+
' TelKind=Case When IsNull(b.TelKind,'''')<>'''' Then TelKind Else ''私人電話'' end'+
' From Hr..Call_list a Left Outer Join Call_TelNumber b On a.TelNo=b.TelNo '+
' where Year([DateTime])=Year(GetDate()) and DATEPART(Week,[DateTime])=DATEPART(Week,GetDate()) '+
' and ExtentionNo not in (''20'',''15'',''16'',''17'',''18'',''21'',''22'',''28'') '+
' and Convert(Int,SubString(Long,1,CHARINDEX(''-'',Long)-1))>=3 '+
' Order By ExtentionNo ';
Active:=True;
First;
i:=1;
while not eof do
begin
i:=i+1;
xlsApp.ActiveWorkbook.ActiveSheet.rows[i].select;
xlsApp.ActiveWorkbook.ActiveSheet.cells[i,1].Value:=FieldByName('ExtentionNo').AsString;
xlsApp.ActiveWorkbook.ActiveSheet.cells[i,1].NumberFormatLocal:='G/通用格式';
xlsApp.ActiveWorkbook.ActiveSheet.cells[i,1].HorizontalAlignment:=3;
xlsApp.ActiveWorkbook.ActiveSheet.cells[i,1].FormulaR1C1:=xlsApp.ActiveWorkbook.ActiveSheet.cells[i,1].Value;
xlsApp.ActiveWorkbook.ActiveSheet.cells[i,2].Value:=FieldByName('DateTime').AsDateTime;
xlsApp.ActiveWorkbook.ActiveSheet.cells[i,2].NumberFormatLocal:='dd.mm.yyyy hh:mm:ss';
xlsApp.ActiveWorkbook.ActiveSheet.cells[i,2].HorizontalAlignment:=3;
xlsApp.ActiveWorkbook.ActiveSheet.cells[i,2].FormulaR1C1:=xlsApp.ActiveWorkbook.ActiveSheet.cells[i,2].Value;
xlsApp.ActiveWorkbook.ActiveSheet.cells[i,3].Value:=''''+FieldByName('Long').AsString;
xlsApp.ActiveWorkbook.ActiveSheet.cells[i,3].NumberFormatLocal:='@';
xlsApp.ActiveWorkbook.ActiveSheet.cells[i,3].HorizontalAlignment:=3;
xlsApp.ActiveWorkbook.ActiveSheet.cells[i,3].FormulaR1C1:=xlsApp.ActiveWorkbook.ActiveSheet.cells[i,3].Value;
xlsApp.ActiveWorkbook.ActiveSheet.cells[i,4].Value:=''''+FieldByName('TelNo').AsString;
Delphi如何取得excel表格中某個格子里的函數
------解决方案--------------------
procedure TfmMain.FormCreate(Sender: TObject);
const
xlWorksheet=-4167;
var
i:Integer;
sFilePath:String;
xlsApp:Variant;
begin
try
try
//sFilePath := '\\Datacenter\Public\PaUser\'+FormatDateTime('yyyy',Date)+'年第'+FloatToStr(WeekOfTheYear(Date))+'周電話記錄.xls';
xlsApp:=CreateOLEObject('Excel.Application');
xlsApp.Workbooks.Add(xlWorksheet);
xlsApp.ActiveWorkbook.ActiveSheet.Name:=FormatDateTime('yyyy',Date)+'年第'+FloatToStr(WeekOfTheYear(Date))+'周電話記錄';
//標題行
xlsApp.ActiveWorkbook.ActiveSheet.cells[1,1].Value:='分機';
xlsApp.ActiveWorkbook.ActiveSheet.cells[1,2].Value:='通話日期';
xlsApp.ActiveWorkbook.ActiveSheet.cells[1,3].Value:='時長';
xlsApp.ActiveWorkbook.ActiveSheet.cells[1,4].Value:='電話號碼';
xlsApp.ActiveWorkbook.ActiveSheet.cells[1,5].Value:='話務類別';
//標題行對齊方式
xlsApp.ActiveWorkbook.ActiveSheet.cells[1,1].HorizontalAlignment:=3;
xlsApp.ActiveWorkbook.ActiveSheet.cells[1,2].HorizontalAlignment:=3;
xlsApp.ActiveWorkbook.ActiveSheet.cells[1,3].HorizontalAlignment:=3;
xlsApp.ActiveWorkbook.ActiveSheet.cells[1,4].HorizontalAlignment:=3;
xlsApp.ActiveWorkbook.ActiveSheet.cells[1,5].HorizontalAlignment:=3;
xlsApp.ActiveWorkbook.ActiveSheet.Rows[1].RowHeight:=0.8/0.035; //第一行行高
xlsApp.ActiveWorkbook.ActiveSheet.Range['A1:E1'].Borders[4].Weight:=2;//第一行下劃線
xlsApp.ActiveWorkbook.ActiveSheet.Rows[1].Font.Color:=clRed; //第一行字體顏色
xlsApp.ActiveWorkbook.ActiveSheet.Rows[1].Font.Bold :=True; //
with ADS_GetTELRec do
begin
Active:=False;
CommandText:=' Select ExtentionNo,[DateTime],Long,a.TelNo,'+
' TelKind=Case When IsNull(b.TelKind,'''')<>'''' Then TelKind Else ''私人電話'' end'+
' From Hr..Call_list a Left Outer Join Call_TelNumber b On a.TelNo=b.TelNo '+
' where Year([DateTime])=Year(GetDate()) and DATEPART(Week,[DateTime])=DATEPART(Week,GetDate()) '+
' and ExtentionNo not in (''20'',''15'',''16'',''17'',''18'',''21'',''22'',''28'') '+
' and Convert(Int,SubString(Long,1,CHARINDEX(''-'',Long)-1))>=3 '+
' Order By ExtentionNo ';
Active:=True;
First;
i:=1;
while not eof do
begin
i:=i+1;
xlsApp.ActiveWorkbook.ActiveSheet.rows[i].select;
xlsApp.ActiveWorkbook.ActiveSheet.cells[i,1].Value:=FieldByName('ExtentionNo').AsString;
xlsApp.ActiveWorkbook.ActiveSheet.cells[i,1].NumberFormatLocal:='G/通用格式';
xlsApp.ActiveWorkbook.ActiveSheet.cells[i,1].HorizontalAlignment:=3;
xlsApp.ActiveWorkbook.ActiveSheet.cells[i,1].FormulaR1C1:=xlsApp.ActiveWorkbook.ActiveSheet.cells[i,1].Value;
xlsApp.ActiveWorkbook.ActiveSheet.cells[i,2].Value:=FieldByName('DateTime').AsDateTime;
xlsApp.ActiveWorkbook.ActiveSheet.cells[i,2].NumberFormatLocal:='dd.mm.yyyy hh:mm:ss';
xlsApp.ActiveWorkbook.ActiveSheet.cells[i,2].HorizontalAlignment:=3;
xlsApp.ActiveWorkbook.ActiveSheet.cells[i,2].FormulaR1C1:=xlsApp.ActiveWorkbook.ActiveSheet.cells[i,2].Value;
xlsApp.ActiveWorkbook.ActiveSheet.cells[i,3].Value:=''''+FieldByName('Long').AsString;
xlsApp.ActiveWorkbook.ActiveSheet.cells[i,3].NumberFormatLocal:='@';
xlsApp.ActiveWorkbook.ActiveSheet.cells[i,3].HorizontalAlignment:=3;
xlsApp.ActiveWorkbook.ActiveSheet.cells[i,3].FormulaR1C1:=xlsApp.ActiveWorkbook.ActiveSheet.cells[i,3].Value;
xlsApp.ActiveWorkbook.ActiveSheet.cells[i,4].Value:=''''+FieldByName('TelNo').AsString;