抓到的 Delphi 操作 Excel 的參考文件 (加補充) |
|
alvin26
初階會員 發表:24 回覆:41 積分:28 註冊:2005-04-12 發送簡訊給我 |
================================================= 下面這一份用 Delphi 操作 Excel 的文件,我忘了在哪抓的了, 因為公司要做個小功能匯出 Excel 而抓的, 我還補充了一小部份,給各位做參考~ ================================================= [code delphi] Delphi控制Excel2000 希望這分資料,為論壇中的各位會員關於EXCEL操作的問題提供一些幫助。 同時也希望各位能將自己整理的、或已有的資料共享出來。 這樣可以減少大家的「重複勞動」嗎? 技術在於交流,經驗在於積累!!!! 一.使用動態創建的方法 首先創建 Excel 對象,使用ComObj: var ExcelApp: Variant; ExcelApp := CreateOleObject('Excel.Application'); 1) 顯示當前窗口: ExcelApp.Visible := True; 2) 更改 Excel 標題欄: ExcelApp.Caption := '應用程序調用 Microsoft Excel'; 3) 添加新工作簿: ExcelApp.WorkBooks.Add; 4) 打開已存在的工作簿: ExcelApp.WorkBooks.Open('C:\Excel\Demo.xls'); 5) 設置第2個工作表為活動工作表: ExcelApp.WorkSheets[2].Activate; 或 ExcelApp.WorksSheets['Sheet2'].Activate; 6) 給單元格賦值: ExcelApp.Cells[1,4].Value := '第一行第四列'; 7) 設置指定列的寬度(單位:字符個數),以第一列為例: ExcelApp.ActiveSheet.Columns[1].ColumnWidth := 5; 8) 設置指定行的高度(單位:磅)(1磅=0.035厘米),以第二行為例: ExcelApp.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米 9) 在第8行之前插入分頁符: ExcelApp.WorkSheets[1].Rows[8].PageBreak := 1; 10) 在第8列之前刪除分頁符: ExcelApp.ActiveSheet.Columns[4].PageBreak := 0; 11) 指定邊框線寬度: ExcelApp.ActiveSheet.Range['B3:D4'].Borders[2].Weight := 3; 1-左 2-右 3-頂 4-底 5-斜( \ ) 6-斜( / ) 11-1 指定邊框的style (1:實線, 2:虛線) ExcelApp.Selection.Borders[1].LineStyle := 1; 11-2 指定邊框的 Weight (1~4) ExcelApp.Selection.Borders[1].Weight := 3; 11-3 指定邊框的 ColorIndex (0~56) ExcelApp.Selection.Borders[1].ColorIndex := 1; (1:黑色, 2:白色, 3:紅色, 4:綠色, 5:藍色, 6:黃色, 7:紫色, 8:青藍色, 9:棕色…) 12) 清除第一行第四列單元格公式: ExcelApp.ActiveSheet.Cells[1,4].ClearContents; 13) 設置第一行字體屬性: ExcelApp.ActiveSheet.Rows[1].Font.Name := '隸書'; ExcelApp.ActiveSheet.Rows[1].Font.Color := clBlue; ExcelApp.ActiveSheet.Rows[1].Font.Bold := True; ExcelApp.ActiveSheet.Rows[1].Font.UnderLine := True; //將儲存格改成文字格式 ExcelApp.ActiveSheet.Rows[1].Font.Size:= 12; ExcelApp.ActiveSheet.Rows[1].NumberFormatLocal:='@'; //將儲存格改成文字格式 ExcelApp.Selection.NumberFormatLocal:='@'; 13-1) 合併儲存格: ExcelApp.ActiveSheet.Range['A1:C3'].Merge; 13-2) 跨欄置中: ExcelApp.ActiveSheet.Range['A1','V1'].HorizontalAlignment := $FFFFEFF4; ExcelApp.ActiveSheet.Range['A1','V1'].VerticalAlignment := $FFFFEFF4; 13-3) 設定顏色 // color orange ExcelApp.ActiveSheet.Range['A2:V2'].Interior.Color:=clLime; ExcelApp.ActiveSheet.Range['A1:V1'].Interior.Color:=33023; // color green 13-3 凍結 ExcelApp.ActiveSheet.Cells[3,3].Select; ExcelApp.ActiveWindow.FreezePanes := True; 13-4) 設定百分比格式 ExcelApp.ActiveSheet.Range['H13'].NumberFormatLocal:='0.00%'; 14) 進行頁面設置: a.頁眉: ExcelApp.ActiveSheet.PageSetup.CenterHeader := '報表演示'; b.頁腳: ExcelApp.ActiveSheet.PageSetup.CenterFooter := '第&P頁'; c.頁眉到頂端邊距2cm: ExcelApp.ActiveSheet.PageSetup.HeaderMargin := 2/0.035; d.頁腳到底端邊距3cm: ExcelApp.ActiveSheet.PageSetup.HeaderMargin := 3/0.035; e.頂邊距2cm: ExcelApp.ActiveSheet.PageSetup.TopMargin := 2/0.035; f.底邊距2cm: ExcelApp.ActiveSheet.PageSetup.BottomMargin := 2/0.035; g.左邊距2cm: ExcelApp.ActiveSheet.PageSetup.LeftMargin := 2/0.035; h.右邊距2cm: ExcelApp.ActiveSheet.PageSetup.RightMargin := 2/0.035; i.頁面水平居中: ExcelApp.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035; j.頁面垂直居中: ExcelApp.ActiveSheet.PageSetup.CenterVertically := 2/0.035; k.打印單元格網線: ExcelApp.ActiveSheet.PageSetup.PrintGridLines := True; 15) 拷貝操作: a.拷貝整個工作表: ExcelApp.ActiveSheet.Used.Range.Copy; b.拷貝指定區域: ExcelApp.ActiveSheet.Range[ 'A1:E2' ].Copy; c.從A1位置開始粘貼: ExcelApp.ActiveSheet.Range.[ 'A1' ].PasteSpecial; d.從文件尾部開始粘貼: ExcelApp.ActiveSheet.Range.PasteSpecial; 16) 插入一行或一列: a. ExcelApp.ActiveSheet.Rows[2].Insert; b. ExcelApp.ActiveSheet.Columns[1].Insert; 17) 刪除一行或一列: a. ExcelApp.ActiveSheet.Rows[2].Delete; b. ExcelApp.ActiveSheet.Columns[1].Delete; 18) 打印預覽工作表: ExcelApp.ActiveSheet.PrintPreview; 19) 打印輸出工作表: ExcelApp.ActiveSheet.PrintOut; 20) 工作表保存: if not ExcelApp.ActiveWorkBook.Saved then ExcelApp.ActiveSheet.PrintPreview; 20-1) 儲存時不提示 ExcelApp.Application.DisplayAlerts := False; 21) 工作表另存為: ExcelApp.SaveAs( 'C:\Excel\Demo1.xls' ); 22) 放棄存盤: ExcelApp.ActiveWorkBook.Saved := True; 23) 關閉工作簿: ExcelApp.WorkBooks.Close; 24) 退出 Excel: ExcelApp.Quit; 二.使用Delphi 控件方法 在Form中分別放入ExcelApplication, ExcelWorkbook和ExcelWorksheet。 1) 打開Excel ExcelApplication1.Connect; 2) 顯示當前窗口: ExcelApplication1.Visible[0]:=True; 3) 更改 Excel 標題欄: ExcelApplication1.Caption := '應用程序調用 Microsoft Excel'; 4) 添加新工作簿: ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0)); 5) 添加新工作表: var Temp_Worksheet: _WorkSheet; begin Temp_Worksheet:=ExcelWorkbook1. WorkSheets.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam,0) as _WorkSheet; ExcelWorkSheet1.ConnectTo(Temp_WorkSheet); End; 6) 打開已存在的工作簿: ExcelApplication1.Workbooks.Open (c:\a.xls EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,0) 7) 設置第2個工作表為活動工作表: ExcelApplication1.WorkSheets[2].Activate; 或 ExcelApplication1.WorksSheets['Sheet2'].Activate; 8) 給單元格賦值: ExcelApplication1.Cells[1,4].Value := '第一行第四列'; 9) 設置指定列的寬度(單位:字符個數),以第一列為例: ExcelApplication1.ActiveSheet.Columns[1].ColumnsWidth := 5; 10) 設置指定行的高度(單位:磅)(1磅=0.035厘米),以第二行為例: ExcelApplication1.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米 11) 在第8行之前插入分頁符: ExcelApplication1.WorkSheets[1].Rows[8].PageBreak := 1; 12) 在第8列之前刪除分頁符: ExcelApplication1.ActiveSheet.Columns[4].PageBreak := 0; 13) 指定邊框線寬度: ExcelApplication1.ActiveSheet.Range['B3:D4'].Borders[2].Weight := 3; 1-左 2-右 3-頂 4-底 5-斜( \ ) 6-斜( / ) 14) 清除第一行第四列單元格公式: ExcelApplication1.ActiveSheet.Cells[1,4].ClearContents; 15) 設置第一行字體屬性: ExcelApplication1.ActiveSheet.Rows[1].Font.Name := '隸書'; ExcelApplication1.ActiveSheet.Rows[1].Font.Color := clBlue; ExcelApplication1.ActiveSheet.Rows[1].Font.Bold := True; ExcelApplication1.ActiveSheet.Rows[1].Font.UnderLine := True; 16) 進行頁面設置: a.頁眉: ExcelApplication1.ActiveSheet.PageSetup.CenterHeader := '報表演示'; b.頁腳: ExcelApplication1.ActiveSheet.PageSetup.CenterFooter := '第&P頁'; c.頁眉到頂端邊距2cm: ExcelApplication1.ActiveSheet.PageSetup.HeaderMargin := 2/0.035; d.頁腳到底端邊距3cm: ExcelApplication1.ActiveSheet.PageSetup.HeaderMargin := 3/0.035; e.頂邊距2cm: ExcelApplication1.ActiveSheet.PageSetup.TopMargin := 2/0.035; f.底邊距2cm: ExcelApplication1.ActiveSheet.PageSetup.BottomMargin := 2/0.035; g.左邊距2cm: ExcelApplication1.ActiveSheet.PageSetup.LeftMargin := 2/0.035; h.右邊距2cm: ExcelApplication1.ActiveSheet.PageSetup.RightMargin := 2/0.035; i.頁面水平居中: ExcelApplication1.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035; j.頁面垂直居中: ExcelApplication1.ActiveSheet.PageSetup.CenterVertically := 2/0.035; k.打印單元格網線: ExcelApplication1.ActiveSheet.PageSetup.PrintGridLines := True; 17) 拷貝操作: a.拷貝整個工作表: ExcelApplication1.ActiveSheet.Used.Range.Copy; b.拷貝指定區域: ExcelApplication1.ActiveSheet.Range['A1:E2'].Copy; c.從A1位置開始粘貼: ExcelApplication1.ActiveSheet.Range.['A1'].PasteSpecial; d.從文件尾部開始粘貼: ExcelApplication1.ActiveSheet.Range.PasteSpecial; 18) 插入一行或一列: a. ExcelApplication1.ActiveSheet.Rows[2].Insert; b. ExcelApplication1.ActiveSheet.Columns[1].Insert; 19) 刪除一行或一列: a. ExcelApplication1.ActiveSheet.Rows[2].Delete; b. ExcelApplication1.ActiveSheet.Columns[1].Delete; 20) 打印預覽工作表: ExcelApplication1.ActiveSheet.PrintPreview; 21) 打印輸出工作表: ExcelApplication1.ActiveSheet.PrintOut; 22) 工作表保存: if not ExcelApplication1.ActiveWorkBook.Saved then ExcelApplication1.ActiveSheet.PrintPreview; 23) 工作表另存為: ExcelApplication1.SaveAs('C:\Excel\Demo1.xls'); 24) 放棄存盤: ExcelApplication1.ActiveWorkBook.Saved := True; 25) 關閉工作簿: ExcelApplication1.WorkBooks.Close; 26) 退出 Excel: ExcelApplication1.Quit; ExcelApplication1.Disconnect; 三.使用Delphi控制Excle二維圖 在Form中分別放入ExcelApplication, ExcelWorkbook和ExcelWorksheet var asheet1,achart, range:variant; 1)選擇當第一個工作薄第一個工作表 asheet1:=ExcelApplication1.Workbooks[1].Worksheets[1]; 2)增加一個二維圖 achart:=asheet1.chartobjects.add(100,100,200,200); 3)選擇二維圖的形態 achart.chart.charttype:=4; 4)給二維圖賦值 series:=achart.chart.seriescollection; range:=sheet1!r2c3:r3c9; series.add(range,true); 5)加上二維圖的標題 achart.Chart.HasTitle:=True; achart.Chart.ChartTitle.Characters.Text:=』 Excle二維圖』 [/code]
------
弟子規,聖人訓,首孝悌,次謹信,泛愛眾,而親仁,有餘力,則學文。 |
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
|
alvin26
初階會員 發表:24 回覆:41 積分:28 註冊:2005-04-12 發送簡訊給我 |
Delphi希望這分資料,為論壇中的各位會員關於EXCEL同時也希望各位能將自己整理的、或已有的資料共享出來。 技術在於交流,經驗在於積累!!!! 使用動態創建的方法 對象,使用ComObj: var ExcelApp: Variant; ExcelApp := CreateOleObject('Excel.Application'); 1) 更改 Excel 應用程序調用 Microsoft Excel'; 3) 打開已存在的工作簿: ExcelApp.WorkBooks.Open('C:\Excel\Demo.xls'); 5) 個工作表為活動工作表: ExcelApp.WorkSheets[2].Activate; 給單元格賦值: ExcelApp.Cells[1,4].Value := '設置指定列的寬度(單位:字符個數),以第一列為例: ExcelApp.ActiveSheet.Columns[1].ColumnWidth := 5; 8) 磅厘米),以第二行為例: ExcelApp.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1在第8在第8指定邊框線寬度: ExcelApp.ActiveSheet.Range['B3:D4'].Borders[2].Weight := 3; 1-右 3-底 5-斜( / ) 11-1 虛線) ExcelApp.Selection.Borders[1].LineStyle := 1; 11-2 指定邊框的 ColorIndex (0~56) ExcelApp.Selection.Borders[1].ColorIndex := 1; (1:白色, 3:綠色, 5:黃色, 7:青藍色, 9:清除第一行第四列單元格公式: ExcelApp.ActiveSheet.Cells[1,4].ClearContents; 13) 隸書'; ExcelApp.ActiveSheet.Rows[1].Font.Color := clBlue; ExcelApp.ActiveSheet.Rows[1].Font.Bold := True; ExcelApp.ActiveSheet.Rows[1].Font.UnderLine := True; ExcelApp.ActiveSheet.Rows[1].Font.Size:= 12; ExcelApp.ActiveSheet.Rows[1].NumberFormatLocal:='@';//將儲存格改成文字格式 13-1) 跨欄置中: ExcelApp.ActiveSheet.Range['A1','V1'].HorizontalAlignment := $FFFFEFF4; ExcelApp.ActiveSheet.Range['A1','V1'].VerticalAlignment := $FFFFEFF4; 13-3) 凍結 ExcelApp.ActiveSheet.Cells[3,3].Select; ExcelApp.ActiveWindow.FreezePanes := True; 13-4 進行頁面設置: a.報表演示'; b.第&P頁眉到頂端邊距 ExcelApp.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035; j.打印單元格網線: ExcelApp.ActiveSheet.PageSetup.PrintGridLines := True; 15) 拷貝整個工作表: ExcelApp.ActiveSheet.Used.Range.Copy; b.從A1從文件尾部開始粘貼: ExcelApp.ActiveSheet.Range.PasteSpecial; 16) 刪除一行或一列: a. ExcelApp.ActiveSheet.Rows[2].Delete; b. ExcelApp.ActiveSheet.Columns[1].Delete; 18) 打印輸出工作表: ExcelApp.ActiveSheet.PrintOut; 20) 工作表另存為: ExcelApp.SaveAs( 'C:\Excel\Demo1.xls' ); 22) 關閉工作簿: ExcelApp.WorkBooks.Close; 24) : ExcelApp.Quit; 使用Delphi 在Form和ExcelWorksheet) 顯示當前窗口: ExcelApplication1.Visible[0]:=True; 3) 標題欄: ExcelApplication1.Caption := '添加新工作簿: ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0)); 5) 打開已存在的工作簿: ExcelApplication1.Workbooks.Open (c:\a.xls EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,0) 7) 個工作表為活動工作表: ExcelApplication1.WorkSheets[2].Activate; 給單元格賦值: ExcelApplication1.Cells[1,4].Value := '設置指定列的寬度(單位:字符個數),以第一列為例: ExcelApplication1.ActiveSheet.Columns[1].ColumnsWidth := 5; 10) 磅厘米),以第二行為例: ExcelApplication1.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1在第8在第8指定邊框線寬度: ExcelApplication1.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3; 1-右 3-底 5-斜( / ) 14) 設置第一行字體屬性: ExcelApplication1.ActiveSheet.Rows[1].Font.Name := '進行頁面設置: a.報表演示'; b.第&P頁眉到頂端邊距 ExcelApplication1.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035; j.打印單元格網線: ExcelApplication1.ActiveSheet.PageSetup.PrintGridLines := True; 17) 拷貝整個工作表: ExcelApplication1.ActiveSheet.Used.Range.Copy; b.從A1從文件尾部開始粘貼: ExcelApplication1.ActiveSheet.Range.PasteSpecial; 18) 刪除一行或一列: a. ExcelApplication1.ActiveSheet.Rows[2].Delete; b. ExcelApplication1.ActiveSheet.Columns[1].Delete; 20) 打印輸出工作表: ExcelApplication1.ActiveSheet.PrintOut; 22) 工作表另存為: ExcelApplication1.SaveAs( 'C:\Excel\Demo1.xls' ); 24) 關閉工作簿: ExcelApplication1.WorkBooks.Close; 26) : ExcelApplication1.Quit; ExcelApplication1.Disconnect; 使用Delphi二維圖 中分別放入ExcelApplication, ExcelWorkbook)選擇當第一個工作薄第一個工作表 asheet1:=ExcelApplication1.Workbooks[1].Worksheets[1]; 2)選擇二維圖的形態 achart.chart.charttype:=4; 4)加上二維圖的標題 achart.Chart.HasTitle:=True; achart.Chart.ChartTitle.Characters.Text:=二維圖』 6我是這樣寫的: var i,j:integer; ii:string; begin ExcelApplication1.Visible[0]:=True; ExcelApplication1.Caption:='Excel Application'; try ExcelApplication1.Workbooks.Open(ExtractFilePath(paramstr(0)) '獲取當前路徑下的文件並且打開 except ExcelApplication1.Disconnect;//與Eexcelapplication1與Excelworkbook1但是label3附說明: 使用動態創建的方法 對象,使用ComObj: var ExcelApp: Variant; ExcelApp := CreateOleObject( 'Excel.Application' ); 1) 更改 Excel 應用程序調用 Microsoft Excel'; 3) 打開已存在的工作簿: ExcelApp.WorkBooks.Open( 'C:\Excel\Demo.xls' ); 5) 個工作表為活動工作表: ExcelApp.WorkSheets[2].Activate; 給單元格賦值: ExcelApp.Cells[1,4].Value := '設置指定列的寬度(單位:字符個數),以第一列為例: ExcelApp.ActiveSheet.Columns[1].ColumnsWidth := 5; 8) 磅厘米),以第二行為例: ExcelApp.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1在第8在第8指定邊框線寬度: ExcelApp.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3; 1-右 3-底 5-斜( / ) 12) 設置第一行字體屬性: ExcelApp.ActiveSheet.Rows[1].Font.Name := '進行頁面設置: a.報表演示'; b.第&P頁眉到頂端邊距 ExcelApp.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035; j.打印單元格網線: ExcelApp.ActiveSheet.PageSetup.PrintGridLines := True; 15) 拷貝整個工作表: ExcelApp.ActiveSheet.Used.Range.Copy; b.從A1從文件尾部開始粘貼: ExcelApp.ActiveSheet.Range.PasteSpecial; 16) 刪除一行或一列: a. ExcelApp.ActiveSheet.Rows[2].Delete; b. ExcelApp.ActiveSheet.Columns[1].Delete; 18) 打印輸出工作表: ExcelApp.ActiveSheet.PrintOut; 20) 工作表另存為: ExcelApp.SaveAs( 'C:\Excel\Demo1.xls' ); 22) 關閉工作簿: ExcelApp.WorkBooks.Close; 24) : ExcelApp.Quit; (使用Delphi 在Form和ExcelWorksheet) 顯示當前窗口: ExcelApplication1.Visible[0]:=True; 3) 標題欄: ExcelApplication1.Caption := '添加新工作簿: ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0)); 5) 打開已存在的工作簿: ExcelApplication1.Workbooks.Open (c:\a.xls EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,0) 7) 個工作表為活動工作表: ExcelApplication1.WorkSheets[2].Activate; 給單元格賦值: ExcelApplication1.Cells[1,4].Value := '設置指定列的寬度(單位:字符個數),以第一列為例: ExcelApplication1.ActiveSheet.Columns[1].ColumnsWidth := 5; 10) 磅厘米),以第二行為例: ExcelApplication1.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1在第8在第8指定邊框線寬度: ExcelApplication1.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3; 1-右 3-底 5-斜( / ) 14) 設置第一行字體屬性: ExcelApplication1.ActiveSheet.Rows[1].Font.Name := '進行頁面設置: a.報表演示'; b.第&P頁眉到頂端邊距 ExcelApplication1.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035; j.打印單元格網線: ExcelApplication1.ActiveSheet.PageSetup.PrintGridLines := True; 17) 拷貝整個工作表: ExcelApplication1.ActiveSheet.Used.Range.Copy; b.從A1從文件尾部開始粘貼: ExcelApplication1.ActiveSheet.Range.PasteSpecial; 18) 刪除一行或一列: a. ExcelApplication1.ActiveSheet.Rows[2].Delete; b. ExcelApplication1.ActiveSheet.Columns[1].Delete; 20) 打印輸出工作表: ExcelApplication1.ActiveSheet.PrintOut; 22) 工作表另存為: ExcelApplication1.SaveAs( 'C:\Excel\Demo1.xls' ); 24) 關閉工作簿: ExcelApplication1.WorkBooks.Close; 26) : ExcelApplication1.Quit; ExcelApplication1.Disconnect; (使用Delphi 二維圖 中分別放入ExcelApplication, ExcelWorkbook)選擇當第一個工作薄第一個工作表 asheet1:=ExcelApplication1.Workbooks[1].Worksheets[1]; 2)選擇二維圖的形態 achart.chart.charttype:=4; 4)加上二維圖的標題 achart.Chart.HasTitle:=True; achart.Chart.ChartTitle.Characters.Text:=二維圖』
------
弟子規,聖人訓,首孝悌,次謹信,泛愛眾,而親仁,有餘力,則學文。 |
alvin26
初階會員 發表:24 回覆:41 積分:28 註冊:2005-04-12 發送簡訊給我 |
|
books
一般會員 發表:9 回覆:27 積分:7 註冊:2006-10-27 發送簡訊給我 |
procedure TForm2.Button2Click(Sender: TObject);
var i: Integer; BoxNo: String; MsExcel, MsExcelWorkBook, MsExcelWorkSheet:Variant; begin if OpenDialog1.Execute then begin // 睲戈 Query1.Close ; Query1.Sql.clear ; Query1.Sql.add('delete from mytest'); Query1.ExecSql; MsExcel:= CreateOleObject('Excel.Application'); //這句語句怎麼也通不過呢?請高手指教,開發工具為Delphi7 office2003 MsExcelWorkBook:= msExcel.Workbooks.Open(OpenDialog1.FileName); MsExcelWorkSheet:= msExcel.Worksheets.Item[1]; Query1.Close ; Query1.Sql.clear ; Query1.Sql.add('select * from mytest'); Query1.Open; for i := 3 to MsExcelWorkSheet.Rows.Count do begin BoxNo := MsExcelWorkSheet.Range[Chr(65) IntToStr(i)].Value; if BoxNo <> '' then begin Query1.Append; Query1.FieldByName('A01').AsFloat :=strtoFloat(BoxNo); Query1.FieldByName('A02').AsFloat :=MsExcelWorkSheet.Range[Chr(67) IntToStr(i)].Value; Query1.FieldByName('RecNo').AsInteger := i-2; Query1.Post; end else Break; Application.ProcessMessages; end; MessageDlg('蹲戈ЧΘ!',mtInformation,[mbOk],0) ; end; |
alvin26
初階會員 發表:24 回覆:41 積分:28 註冊:2005-04-12 發送簡訊給我 |
請問您有引用 ComObj 嗎?
這函式是定義在這個檔中的。 ===================引 用 books 文 章=================== procedure TForm2.Button2Click(Sender: TObject); var i: Integer; BoxNo: String; MsExcel, MsExcelWorkBook, MsExcelWorkSheet:Variant; begin if OpenDialog1.Execute then begin // 睲戈 Query1.Close ; Query1.Sql.clear ; Query1.Sql.add('delete from mytest'); Query1.ExecSql; MsExcel:= CreateOleObject('Excel.Application'); //這句語句怎麼也通不過呢?請高手指教,開發工具為Delphi7 office2003 MsExcelWorkBook:= msExcel.Workbooks.Open(OpenDialog1.FileName); MsExcelWorkSheet:= msExcel.Worksheets.Item[1]; Query1.Close ; Query1.Sql.clear ; Query1.Sql.add('select * from mytest'); Query1.Open; for i := 3 to MsExcelWorkSheet.Rows.Count do begin BoxNo := MsExcelWorkSheet.Range[Chr(65) IntToStr(i)].Value; if BoxNo <> '' then begin Query1.Append; Query1.FieldByName('A01').AsFloat :=strtoFloat(BoxNo); Query1.FieldByName('A02').AsFloat :=MsExcelWorkSheet.Range[Chr(67) IntToStr(i)].Value; Query1.FieldByName('RecNo').AsInteger := i-2; Query1.Post; end else Break; Application.ProcessMessages; end; MessageDlg('蹲戈ЧΘ!',mtInformation,[mbOk],0) ; end;
------
弟子規,聖人訓,首孝悌,次謹信,泛愛眾,而親仁,有餘力,則學文。 |
devildemon
一般會員 發表:2 回覆:1 積分:0 註冊:2009-12-19 發送簡訊給我 |
alvin26你好: ComObj 是貼在它 uses ComObj;{$R *.dfm}===================引 用 alvin26 文 章=================== 請問您有引用 ComObj 嗎? 這函式是定義在這個檔中的。 ===================引 用 books 文 章=================== procedure TForm2.Button2Click(Sender: TObject); var i: Integer; BoxNo: String; MsExcel, MsExcelWorkBook, MsExcelWorkSheet:Variant; begin if OpenDialog1.Execute then begin // 睲戈 Query1.Close ; Query1.Sql.clear ; Query1.Sql.add('delete from mytest'); Query1.ExecSql; MsExcel:= CreateOleObject('Excel.Application'); //這句語句怎麼也通不過呢?請高手指教,開發工具為Delphi7 office2003 MsExcelWorkBook:= msExcel.Workbooks.Open(OpenDialog1.FileName); MsExcelWorkSheet:= msExcel.Worksheets.Item[1]; Query1.Close ; Query1.Sql.clear ; Query1.Sql.add('select * from mytest'); Query1.Open; for i := 3 to MsExcelWorkSheet.Rows.Count do begin BoxNo := MsExcelWorkSheet.Range[Chr(65) IntToStr(i)].Value; if BoxNo <> '' then begin Query1.Append; Query1.FieldByName('A01').AsFloat :=strtoFloat(BoxNo); Query1.FieldByName('A02').AsFloat :=MsExcelWorkSheet.Range[Chr(67) IntToStr(i)].Value; Query1.FieldByName('RecNo').AsInteger := i-2; Query1.Post; end else Break; Application.ProcessMessages; end; MessageDlg('蹲戈ЧΘ!',mtInformation,[mbOk],0) ; end; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |