当前位置:文档之家› delphi 表格数据导出到excel

delphi 表格数据导出到excel

delphi 表格数据导出到excel
delphi 表格数据导出到excel

delphi 表格数据导出到excel

2009年03月14日星期六下午 02:32

procedure TfrmMain.xGridDataToExcel(mGrid: TStringGrid; pTitle, SePTitle,

pTail, pStrCols: string);

var

i,j:integer;

strlist:Tstringlist;

str,Filename:string;

h,k:integer;

Excelid: OleVariant;

s: string;

v,sheet,range:variant;

icol,irow:integer;

nCols:integer;

nCurrCol:integer;

nCurrRow:integer;

begin

excelSaveto.Title:='请选择需要导出到的目标文件';

if excelSaveto.Execute = false then exit;

Filename:=trim(excelSaveto.FileName);

nCols := 0;

for j:=0 to mGrid.ColCount - 1 do begin

if mGrid.ColWidths[j]>0 then nCols := nCols + 1;

end;

if nCols = 0 then begin

showmessage('没有数据,无法导出!');

exit;

end;

//导出到excel表格

try

Excelid := CreateOLEObject('Excel.Application');

except

Application.MessageBox('Excel没有安装!', '提示信息',

MB_OK+MB_ICONASTERISK+MB_DEFBUTTON1+MB_APPLMODAL);

Exit;

end;

Excelid.Visible := false;

//Excelid.Visible := true;

Excelid.WorkBooks.Add;

//Excelid.WorkBooks[1].WorkSheets[1].Name := pTitle;

Sheet := Excelid.Workbooks[1].WorkSheets[1];

//标题

sheet.cells[1, 1] := pTitle;

sheet.range[sheet.cells[1, 1],sheet.cells[1,nCols]].Select; //选择该列Excelid.selection.HorizontalAlignment :=

$FFFFEFF4; //居中

Excelid.selection.MergeCells := True;

//小标题

nCurrRow := 2;

if SePTitle <> '' then begin

Sheet.Cells[2,1] := SePTitle;

sheet.range[sheet.cells[2, 1],sheet.cells[2,nCols]].Select; //选择该列

//Excelid.selection.HorizontalAlignment :=

$FFFFEFF4; //居中

Excelid.selection.MergeCells := True;

//表体(包括表头)

nCurrRow := 3;

end;

for i:=0 to mGrid.RowCount-1 do begin

nCurrCol := 1;

for j:=0 to mGrid.ColCount-1 do begin

if mGrid.ColWidths[j]>0 then begin

if pos(','+inttostr(j)+',', ','+pStrCols+',')<>0 then begin //导出为字符串格式

Sheet.Cells[nCurrRow,nCurrCol].NumberFormatLocal := '@';

Sheet.Cells[nCurrRow,nCurrCol] := mGrid.Cells[j,i];

end else begin

Sheet.Cells[nCurrRow,nCurrCol] := mGrid.Cells[j,i];

end;

nCurrCol := nCurrCol + 1;

end;

end;

nCurrRow := nCurrRow + 1;

end;

//表尾文字

Sheet.Cells[nCurrRow,1] := pTail;

sheet.range[sheet.cells[nCurrRow,

1],sheet.cells[nCurrRow,nCols]].Select; //选择该列

Excelid.selection.HorizontalAlignment :=

$FFFFEFF4; //居中

Excelid.selection.MergeCells := True;

try

sheet.cells[1,1].Select;

Excelid.Workbooks[1].SaveAs(FileName);

Excelid.Workbooks[1].close;

Excelid.Quit;

except

Excelid.Quit; //有时写完后立即退出,但写进程还占用着该文件,不允许退出,所以这里再退出一次

end; //实际上就是设一点点延迟,

Excelid := Unassigned;

end;

如何把数据库表导出为Excel表格?(用Delphi)

我将演示程序的所有代码贴上,请参考,

一个主窗体From1,一个Table1,一个DataSource1 ,两个BitBtn ,一个DBGrid1.

unit Unit1;

interface

uses

Windows, Messages, SysUtils, V ariants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons, Grids, DBGrids, DB, DBTables;

type

TForm1 = class(TForm)

Table1: TTable;

DataSource1: TDataSource;

DBGrid1: TDBGrid;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

procedure BitBtn2Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure BitBtn1Click(Sender: TObject);

procedure ToExcel(DbGrid:TDBGrid; Tab: TTable; ExcelApp:variant); //过程声明

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses ComObj; //加上comobj .

{$R *.dfm}

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

close;

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Application.Terminate;

Release;

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

var

ExcelApp: variant;

begin

if Table1.RecordCount=0 then

begin

Application.MessageBox('没有数据可导出。', '提示', MB_OK +

MB_ICONINFORMA TION + MB_DEFBUTTON2);

Exit;

end;

application.ProcessMessages;

try

ExcelApp:=createoleobject('Excel.application');

except

messageDlg('请先安装MicroSoft Excel',mtError,[mbok],0);

exit;

end;

ExcelApp.Visible := True;

ExcelApp.Caption := '标题:';

ExcelApp.WorkBooks.Add;

ExcelApp.WorkSheets[1].Activate;

ExcelApp.WorkSheets[1].name:='表名';

ExcelApp.ActiveSheet.Rows[1].Font.Bold:= True;

ExcelApp.Columns[1].NumberFormatLocal:='@';

ToExcel(DbGrid1,Table1,ExcelApp); //调用输出过程。

Application.MessageBox('恭喜!' + #13#10#13#10 +

'数据成功导出,请注意数据备份。', '提示', MB_OK + MB_ICONINFORMA TION + MB_DEFBUTTON2);

end;

procedure TForm1.ToExcel(DbGrid:TDBGrid; Tab: TTable; ExcelApp:variant);

var

i,j,FieldNum:integer;

begin

with Tab do

begin

DisableControls;

fieldNum := dbgrid.fieldCount;

for i:=1 to fieldNum do //写表头

begin

ExcelApp.Cells[1,i]:=Form1.DBGrid1.Columns[i-1].Title.caption; end;

first;

i:=2;

while not eof do

begin

for j:=1 to fieldNum do

begin

ExcelApp.Cells[i,j]:=fields[j-1].AsString;

end;

inc(i);

if (i mod 20)=0 then

ExcelApp.Cells[i+10,1].Activate;

next;

end;

EnableControls;

end;

end;

end.

uses ComObj; //加上

procedure TMain_Frm.actTO_SaveExecute(Sender: TObject);

var

ExcelApp: variant;

begin

if ADOQuery1.RecordCount=0 then

begin

Application.MessageBox('没有数据可导出。', '提示', MB_OK + MB_ICONINFORMATION + MB_DEFBUTTON2);

Exit;

end;

application.ProcessMessages;

try

ExcelApp:=createoleobject('Excel.application');

except

messageDlg('请先安装MicroSoft Excel',mtError,[mbok],0);

exit;

end;

ExcelApp.Visible := True;

ExcelApp.Caption := '标题:';

ExcelApp.WorkBooks.Add;

ExcelApp.WorkSheets[1].Activate;

ExcelApp.WorkSheets[1].name:='表名';

ExcelApp.ActiveSheet.Rows[1].Font.Bold:= True;

ExcelApp.Columns[1].NumberFormatLocal:='@';

ExportToExcel(DbGrid1,ADOQuery1,ExcelApp);

Application.MessageBox('恭喜!' + #13#10#13#10 +

'数据成功导出,请注意数据备份。', '提示', MB_OK + MB_ICONINFORMATION +

MB_DEFBUTTON2);

end;

procedure TMain_Frm.ExportToExcel(DbGrid:TDBGrid; Query:TAdoQuery; ExcelApp:variant); var

i,j,FieldNum:integer;

begin

with Query do

begin

DisableControls;

fieldNum := dbgrid.fieldCount;

for i:=1 to fieldNum do //写表头

begin

ExcelApp.Cells[1,i]:=Main_Frm.DBGrid1.Columns[i-1].Title.caption;

end;

first;

i:=2;

while not eof do

begin

for j:=1 to fieldNum do

begin

ExcelApp.Cells[i,j]:=fields[j-1].AsString;

end;

inc(i);

if (i mod 20)=0 then

ExcelApp.Cells[i+10,1].Activate;

next;

end;

EnableControls;

end;

end;

如果有兴趣交流,QQ:34348161

利用ComObj 控制 Excel 的相关函数

2009-08-27 09:47

利用ComObj 控制 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].ColumnsWidth := 5;

8) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:ExcelApp.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米

9) 在第8行之前插入分页符:

ExcelApp.WorkSheets[1].Rows.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-斜( / )

12) 清除第一行第四列单元格公式:

ExcelApp.ActiveSheet.Cells[1,4].ClearContents;

13) 设置第一行字体属性:

ExcelApp.ActiveSheet.Rows[1]https://www.doczj.com/doc/4a4641649.html, := '隶书';

ExcelApp.ActiveSheet.Rows[1].Font.Color := clBlue;

ExcelApp.ActiveSheet.Rows[1].Font.Bold := True;

ExcelApp.ActiveSheet.Rows[1].Font.UnderLine := True;

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.拷贝整个工作表:

https://www.doczj.com/doc/4a4641649.html,ed.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;

21) 工作表另存为:

ExcelApp.SaveAs( 'C:\Excel\Demo1.xls' ); 22) 放弃存盘:

ExcelApp.ActiveWorkBook.Saved := True;

23) 关闭工作簿:

ExcelApp.WorkBooks.Close;

24) 退出 Excel:

ExcelApp.Quit;

25) 删除工作表

ExcelApp.WorkSheets[2].delete;

26) 自动适应列

ExcelApp.ActiveSheet.Columns.AutoFit;

27) 颜色设置

V:=ExcelApp.ActiveSheet;

a. V.Rows[2].interior.color:=clRed;

b. V.Columns[3].interior.color:=clSkyBlue;

c. V.Range[‘A1:E5’].interior.color:=clBlue;

28) 设定边框线

V.Range[‘A1:C3’].borders.linestyle:=N;

0-无边框 1-实线 2-虚线(密) 3-虚线(疏)

4-点划线 5-点点划线

29) 自动换行

V.WrapText:=true;

30) 转化为文本格式

V.cells[3,2]:=char(36)+‘03212’

本文来自CSDN博客,转载请标明出处:

https://www.doczj.com/doc/4a4641649.html,/fhfanxin/archive/2008/10/30/3188580.aspx

delphi 导出excel类

DELPHI 2010-07-23 15:11:55 阅读12 评论0 字号:大中小订阅

导出方法

Button

procedure TFrm_ClientGameRecord.Act_ExportExecute(Sender: TObject);

var ToExcel:TTOExecel;

begin

ToExcel:=TTOExecel.Create(GetTreeTopNode(Tree_Time.Selected).Text+'_交易记录.xls'); try

ToExcel.ToExcel(DBGrid_ChongZhi,Gauge_Export);

finally

ToExcel.Free;

end;

end;

导出类:

unit ToExcel_Class;

interface

uses db,Adodb,Grids, DBGrids,windows,SysUtils,Gauges,forms,Dialogs;

{ TTOExecel }

type

TTOExecel = class(TObject)

private

FFileName:string;

FSaveDlg:TSaveDialog;

FFileHandle:THandle;

protected

public

constructor Create(FileName:string);

destructor Destroy; override;

//导出到Excel。返回导出的记录数。

Function ToExcel(DBGrid:TDBGrid;Pre:TGauge=nil):integer;

//写文件

function WriteFile(FHandle:thandle; LogTxt: string): byte; published

end;

implementation

{ TTOExecel }

constructor TTOExecel.Create(FileName:string);

begin

FFileName:=FileName;

FSaveDlg:=TSaveDialog.Create(nil);

FSaveDlg.DefaultExt:='.xls';

FSaveDlg.Filter:='Excel 文件|*.xls|所有文件|*.*';

FSaveDlg.FileName :=FileName;

end;

destructor TTOExecel.Destroy;

begin

FSaveDlg.Free;

inherited;

end;

function TTOExecel.WriteFile(FHandle:thandle; LogTxt: string): byte; var FileB: pchar;

FileLen:integer;

begin

try

LogTxt := LogTxt + #13 + #10;

GetMem(Fileb, length(LogTxt)+10);

fillchar(Fileb[0], length(LogTxt)+10, #0);

move(LogTxt[1], fileb[0], length(LogTxt));

if (FHandle >0) then

begin

FileLen:=FileSeek(FHandle, int64(0), 2);

if FileLen >=0 then

begin

if FileWrite(FHandle, fileb[0], length(LogTxt))>0 then

begin

FreeMem(FileB);

result := 0;

end

else

Result:=1;

end

else

Result:=2;

end

else

Result:=3;

except

result := 4;

end;

end;

function TTOExecel.ToExcel(DBGrid: TDBGrid;Pre:TGauge=nil): integer;

var i,j:integer;

ExecelRows:string;

RecNo:integer;

begin

Recno:=DBGrid.DataSource.DataSet.RecNo;

ExecelRows:='';

if not FSaveDlg.Execute then

exit;

//if FileExists(FSaveDlg.FileName) then

// DeleteFile(FSaveDlg.FileName);

FFileHandle :=FileCreate(FSaveDlg.FileName);

try

for i:=0 to DBGrid.Columns.Count -1 do

begin

if DBGrid.Columns[i].Visible then

ExecelRows:=ExecelRows+DBGrid.Columns[i].Title.Caption +char(VK_TAB);

end;

WriteFile(FFileHandle,ExecelRows);

DBGrid.Enabled :=false;

DBGrid.DataSource.DataSet.First;

if Assigned(pre) then

begin

pre.Visible :=true;

pre.MaxValue :=DBGrid.DataSource.DataSet.RecordCount;

end;

for i:=1 to DBGrid.DataSource.DataSet.RecordCount do

begin

Application.ProcessMessages;

sleep(1);

if Assigned(pre) then

pre.Progress :=i;

ExecelRows:='';

for j:=0 to DBGrid.Columns.Count -1 do

begin

if DBGrid.Columns[j].Visible then

ExecelRows:=ExecelRows+DBGrid.Fields[j].Text+char(vk_tab);

end;

WriteFile(FFileHandle,ExecelRows);

DBGrid.DataSource.DataSet.Next;

end;

if Assigned(pre) then

Pre.Visible :=false;

DBGrid.Enabled :=true;

DBGrid.DataSource.DataSet.RecNo:=RecNo;

finally

FileClose(FFileHandle);

end;

end;

end.

vb代码读取excel数据源

取得excel文件所有内容: 'add microsoft ado frist. Private Sub Command2_Click() Dim adoConnection As New ADODB.Connection Dim adoRecordset As New ADODB.Recordset CommonDialog1.ShowOpen 'OLE DB + ODBC Driver 方式: 'adoConnection.Open "Data Provider=MSDASQL.1;driver=Microsoft Excel Driver (*.xls);DBQ=e:\temp\book2.xls" 'Microsoft.Jet.OLEDB.4.0 方式,(建?) adoConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & CommonDialog1.FileName & ";Extended Properties='Excel 8.0;HDR=Yes'" adoRecordset.Open "select * from [sheet1$]", adoConnection, adOpenKeyset, adLockOptimistic Debug.Print adoRecordset.RecordCount Dim i As Integer Do Until adoRecordset.EOF For i = 0 To adoRecordset.Fields.Count - 1 Debug.Print adoRecordset.Fields.Item(0).Name Debug.Print adoRecordset.Fields.Item(0).Value Next i adoRecordset.MoveNext Loop End Sub 但还不知道如何取得sheet名,不好意思,那位老鸟知道请告知,谢谢 sheet名用Excel.Application对象 Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Set xlApp = New Excel.Application Set xlBook = xlApp.Workbooks.Open("C;\123.xls")) For i = 1 To intSheetSum strTemp=xlBook.Worksheets(i).name Next i Dim xlsconn As New ADODB.Connection

怎么在delphi中读取Excel数据(各种详细操作)

怎么在delphi中读取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 ] .ColumnsWidth := 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 ;

(新)vb程序调用excel数据

Visual Basic调用Excel之技巧吴声松 (湖北省水利水电勘测设计院地质大队湖北 430070) Visual Basic(以下简称VB)是一套可视化、面向对象、事件驱动方式的结构化程序设计语言,已经成为许多程序设计者甚至专业程序员用来开发WINDOWS应用程序的首选开发工具。但用过VB的程序设计人员都知道,要想用VB输出复杂的表格来,是十分困难的。能不能用VB调用EXCEL呢?Active技术标准为我们解决了这个问题。最近笔者为单位开发“土工试验数据整理”的某个模块时,涉及到复杂数据表格的输出问题,经过笔者的摸索,用VB调用EXCEL,取得了很好的效果。本文从编程实践的角度对使用VB控制EXCEL的技术作简要说明。 1 EXCEL的对象模型 如果一个应用程序支持自动化技术,那么其它的应用就可以通过其暴露的对象,对它进行控制,控制程序称为客户机,而被控制的一方就称为服务器,被控制的对象就是Active对象。VB正是通过EXCEL显露的各级对象来控制EXCEL工作的。每个对象都有各自的方法和属性,通过方法可以实现对对象的控制,而属性则可以改变对象的各种状态。 理解EXCEL的对象模型是对其编程的基础。EXCEL是以层次结构组织对象的,其对象模型中含有许多不同的对象元素,这些对象元素就是VB可以操纵的。在EXCEL对象的层次结构中,最顶层是Application对象,是Excel本身。从该对象开始往下依次是: .workbooks对象集,是Application对象的下层,其指的是Excel的工作簿文件。 .worksheets对象集,是Workbooks对象集的下层,它表示的是Excel 的一个工作表。 .Cells和Range对象,它们是worksheets对象的下层,它则指向Excel 工作表中的一个或多个单元格。 以上介绍的四个对象是Excel中最重要也是用得最多的对象,而且从上面的介绍中也不难看出,要控制Excel中的某个具体对象,如某个工作簿中某一表格中的单元格,就必须从Excel层次结构对象的最上层即Application对象开始遍历。 2 Excel对象的使用

Delphi控制Excel的重要属性和方法

Delphi控制Excel2000 类别:COM&ActiveX (一)使用动态创建的方法 首先创建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].ColumnsWidth:=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-斜(/) 12)清除第一行第四列单元格公式: ExcelApp.ActiveSheet.Cells[1,4].ClearContents; WrapText:=True可能是自动换行 13)设置第一行字体属性: ExcelApp.ActiveSheet.Rows[1]https://www.doczj.com/doc/4a4641649.html,:='隶书'; ExcelApp.ActiveSheet.Rows[1].Font.Color:=clBlue; ExcelApp.ActiveSheet.Rows[1].Font.Bold:=True; ExcelApp.ActiveSheet.Rows[1].Font.UnderLine:=True; 14)进行页面设置: a.页眉: ExcelApp.ActiveSheet.PageSetup.CenterHeader:='报表演示'; b.页脚:

VB中使用EXCEL输出

Private Sub cmdSwatch_Click() Dim xls As excel.Application Dim xlbook As excel.Workbook 'On Error GoTo exlError Dim i As Integer If Dir(Text1.Text) <> "" Then '此目录下如有同名文件给出提示,并作相应处理 If MsgBox("文件已存在,是否覆盖!", vbYesNo + vbQuestion, "另存为工程造价文件") = vbNo Then Exit Sub Else Kill (Text1.Text) '删除文件 End If End If '************打开工作表*************** Set xls = New excel.Application xls.Visible = True Set xlbook = xls.Workbooks.Add '********************************* For i = 0 To 14 If Check2(i).Value = vbChecked Then Select Case i Case 8 ToExcelJDanJiaSum.ToExcelJDanJiaSum xlbook, xls Case 9 ToExcelADanJiaSum.ToExcelADanJiaSum xlbook, xls Case 10 ToExcelCailiao.ToExcelCailiao xlbook, xls

Case 11 ToExcelTsf.ToExcelTsf xlbook, xls Case 12 ToExcelZgcl.ToExcelZgcl xlbook, xls End Select End If Next For i = 0 To 6 If Check3(i).Value = vbChecked Then Select Case i Case 0 ToExcelMan.ToExcelMan xlbook, xls Case 1 ToExcelFSD_CL.ToExcelFSD_CL xlbook, xls Case 2 ToExcelHNT.ToExcelHNT xlbook, xls Case 3 ToExcelZsf.ToExcelZsf xlbook, xls Case 4 ToExcelJingChang.ToExcelJingChang xlbook, xls Case 5 ToExcelJDanJia.ToExcelJDanJia xlbook, xls Case 6 ToExcelADanJia.ToExcelADanJia xlbook, xls End Select End If Next xlbook.SaveAs Text1.Text '保存EXCEL文件

VB编程在Excel中的应用

EXCEL 编程(VBA) Excel 最重要的应用就是利用公式进行计算。无论输入是纯粹的数字运算,还是引用其他单元格计算,只要在一个单元格中输入公式,就能得到结果。这个直接显示结果的设计对于绝大多数场合来说都是适用的,但某些情况下就不那么让人满意了。比如说在做工程施工的预结算编写,使用Excel,既要写出工程量的计算式,也要看到它的结果,于是这样相同的公式在Excel里面要填两次,一次在文本格式的单元格中输入公式,一次是在数据格式的单元格中输入公式让Excel计算结果。如何既能看到公式又能看到结果呢?这个问题笔者认为可以从两个方面考虑:一种方法是所谓“已知结果,显示公式”,先在数据格式单元格中输入公式让Excel计算结果,然后在相邻的单元格中看到公式;另一种方法所谓“已知公式,显示结果”,就是先在一个文本格式的单元格中输入公式,在相邻的单元格中看到结果。 ★ 已知结果,显示公式 假设C列为通过公式计算得到的结果(假设C1为“=A1+B1”,或者直接是数字运算“=2+3”),而相邻的D列是你需要显示公式的地方(即D1应该显示为“=A1+B1”或者“=2+3”)。 1. 打开“工具”菜单选择“选项”命令,出现“选项”对话框。 2. 在“常规”选项卡中,选中“R1C1引用方式”选项。 3. 定义名称,将“引用位置”由“=GET.CELL(6,Sheet1!RC[-1])”即可。这里的RC[-1]含义是如果在当前单元格的同行前一列单元格中有公式结果,则在当前单元格中得到公式内容,即在含公式结果单元格的同行后一列单元格显示公式内容;如果将RC[-1]改为RC[1],则在公式结果的同行前一列单元格显示公式内容。 4. 如果“引用位置”中含有“RC[-1]”,则在含公式结果单元格的同行后一列单元格中输入“=FormulaofResult”即可得到公式;如果“引用位置”中含有“RC[1]”,则在含公式结果单元格的同行前一列单元格中输入“=FormulaofResult”即可得到公式。 提示:如果想要在含公式结果单元格的同行后数第2列中显示公式内容,则需要把“引用位置”中的“RC -1 ”改为“RC -2 ”。 ★已知公式,显示结果 假设C列为输入的没有等号公式(假设C1为“A1+B1”),而相邻的D列是你需要存放公式计算结果的地方(即D1显示A1和B1单元格相加的结果)。 1. 选中D1,然后打开“插入”菜单选择“名称”命令中的“定义”子命令,出现“定义名称”对话框。 2. 在“在当前工作表中的名称”输入栏中输入定义的名称“ResultofFomula”,在下方的“引用位置”编辑栏中输入“=EVALUATE(Sheet1!C1)”,单击[确认]按钮退出。 3. 在 D1中输入“=ResultofFomula”,然后选中按住右下角的填充柄向下拉动填充即可。 提示:EVALUATE 是Eexcel 4.0版的宏表函数,Excel 2000和Excel 2002中 还支持,但只可用于名称定义中。 4. 填充后要按[F9]进行重算,如果C列的公式有改动,也需要及时按[F9]进行

用VB操作excel方法汇总

用VB操作excel方法汇总 Private Sub Command3_Click() Dim i As Long Dim j As Long Dim objExl As Excel.Application '声明对象变量 Me.MousePointer = 11 '改变鼠标样式 Set objExl = New Excel.Application '初始化对象变量 objExl.SheetsInNewWorkbook = 1 '将新建的工作薄数量设为1 objExl.Workbooks.Add '增加一个工作薄 objExl.Sheets(objExl.Sheets.Count).Name = "book1" '修改工作薄名称 objExl.Sheets.Add , objExl.Sheets("book1") '增加第二个工作薄在第一个之后 objExl.Sheets(objExl.Sheets.Count).Name = "book2" objExl.Sheets.Add , objExl.Sheets("book2") '增加第三个工作薄在第二个之后 objExl.Sheets(objExl.Sheets.Count).Name = "book3" objExl.Sheets("book1").Select '选中工作薄 For i = 1 To 50 '循环写入数据 For j = 1 To 5 If i = 1 Then objExl.Selection.NumberFormatLocal = "@" '设置格式为文本 objExl.Cells(i, j) = " E " & i & j Else objExl.Cells(i, j) = i & j End If Next Next objExl.Rows("1:1").Select '选中第一行 objExl.Selection.Font.Bold = True '设为粗体 objExl.Selection.Font.Size = 24 '设置字体大小 objExl.Cells.EntireColumn.AutoFit '自动调整列宽 objExl.ActiveWindow.SplitRow = 1 '拆分第一行 objExl.ActiveWindow.SplitColumn = 0 '拆分列 objExl.ActiveWindow.FreezePanes = True '固定拆分 objExl.ActiveSheet.PageSetup.PrintTitleRows = "$1:$1" '设置打印固定行 objExl.ActiveSheet.PageSetup.PrintTitleColumns = "" '打印标题 objExl.ActiveSheet.PageSetup.RightFooter = "打印时间: " & _ For mat(Now, "yyyy年mm月dd日 hh:MM:ss") objExl.ActiveWindow.View = xlPageBreakPreview '设置显示方式 objExl.ActiveWindow.Zoom = 100 '设置显示大小 '给工作表加密码 objExl.ActiveSheet.Protect "123", DrawingObjects:=True, _ Contents:=True, Scenarios:=True objExl.Application.IgnoreRemoteRequests = False

VB与Excel的数据交换

第11章VB与Excel的数据交换 Excel是目前非常流行的电子表格软件,很多人都习惯于在EXCEL中处理数据,并在Excel 中完成报表输出等功能,但Excel的数据处理功能相对较弱,而VB具有强大的数据处理功能,但报表输出功能相对较弱。本章以实例的形式介绍VB如何从Excel中获得数据,再将处理后的数据保存到Excel工作表中,并调用Excel中的VBA指令对排版,生成数据报表。 VB中Excel的启动与关闭 11.1.1 Excel对象库引用 在VB中调用Excel,首先需要打开VB编程环境“工程”菜单中的“引用”项目,并选取项目中的“Microsoft Excel object library”(Excel版本不同,这个选项中的的版本号可能不一样)。引用Excel对象库后,对编写代码会带来很多便利。 11.1.2 Excel对象声明 EXCEL是以层次结构组织对象的,其对象模型中含有许多不同的对象元素。编程过程中主要用到以下4个层次的对象。 1.Application对象,即Excel程序本身; 2.WorkBook对象,即Excel的工作簿文件对象; 3.WorkSheets对象,表示的是Excel的工作表对象集;例如:worksheets(1)表示第一个工作表。 4.Cells、Range、Rows、Columns对象,分别表示Excel工作表中的单元格对象集、区域对象、行对象集、列对象集。例如: Cells(3,5) 表示第3行第5列的那个单元格

Range("C5") 表示第3行第5列的那个单元格 Range("A1:C5") 表示从A1单元格到C5单元格的矩形区域 Rows(1) 表示第1行 Range("1:1") 表示第1行 Range("1:10") 表示第1到10行的区域 Columns(1) 表示第1列 Range("A:A") 表示第1列 Range("A:D") 表示从第A到D列 11.1.3 VB中Excel的启动与关闭 例11-1 新建立一个VB的工程,在窗体上添加2个命令按钮(Command1和Command2),2个按钮的Caption分别为“启动Excel”和“关闭Excel”,输入以下代码即可。 Dim xls As New '声明一个Excel应用程序对象 Dim xbook As New '声明一个Excel工作薄对象 Dim xsheet As New '声明一个Excel工作表象 Private Sub Command1_Click() Set xbook = '启动Excel,并将自动创建的工作薄赋给xbook Set xsheet = (1) '将第一个工作表赋给xsheet = True '显示Excel窗口,程序调试阶段显示该窗口非常重要End Sub Private Sub Command2_Click() Set xls = Nothing '释放对象变量

Delphi操作EXCEL函数整理

一、使用单元: Use :EXCEL 2000, ComObj 二、定义 var ExcelApp,Sheet,Range: Variant; 注释: ExcelApp 为定义的Excel 对象 Sheet 为定义的工作表(Sheet)对象 Range 为定义的工作表范围 三、关于Excel 对象创建初始化以及工作表、工作表范围的初始化 1. 创建excel对象: ExcelApp := CreateOleObject( 'Excel.Application' ); 2. 显示当前窗口: ExcelApp.Visible := True; 3. 更改Excel 标题栏: ExcelApp.Caption := '应用程序调用Microsoft Excel'; 4. 添加新工作簿: ExcelApp.WorkBooks.Add; 5 打开已存在的工作簿: ExcelApp.WorkBooks.Open(FilePath); 6.设置工作簿默认工作表张数 ExcelApp.SheetsInNewWorkbook := 1; 7.设置工作表名称 ExcelApp.Workbooks[WorkbookNum].WorkSheets[WorkSheetNum].Name := PName; 8.工作表初始化 Sheet:= ExcelApp.Workbooks[WorkbookNum].WorkSheets[WorkSheetNum]; 9.工作表范围初始化 Range := Sheet.Range['A1:DL1'] ; 10.设置第2个工作表为活动工作表: ExcelApp.WorkSheets[2].Activate; 或 ExcelApp.WorksSheets[ 'Sheet2' ].Activate; 三、单元格赋值设置数值类型 1. 给单元格赋值: ExcelApp.Cells[row, column].Value := '第一行第四列'; 或 Sheet.Cells[row, column] := ‘第一行第四列’; 2 清除第一行第四列单元格公式:

VB将数据导出到EXCEL

'************************************************************************* '** '** VB将数据导出到EXCEL,没有安装EXCEL的一样也可以导出. '** '** 调用方式: s_Export2Excel(Ado.Recordset) 或s_Export2Excel(Rds.RecordSet) '** 支持Rds 与Ado 的记录导出 '** '************************************************************************* '得到所有数据类型,有些数据类型EXCEL不支持,已经替换掉 Public Function f_FieldType$(ByVal sType&) Dim iRe$ Select Case sType Case 2, 3, 20 iRe = "int " Case 5 iRe = "float " Case 6 iRe = "money " Case 131 iRe = "numeric " Case 4 iRe = "real " Case 128 iRe = "binary " Case 204 iRe = "varbinary " Case 11 iRe = "bit " Case 129, 130 iRe = "char " Case 17, 72, 131, 200, 202, 204 iRe = "varchar " Case 201, 203 iRe = "text " Case 7, 135 iRe = "datetime " Case 205 iRe = "image " Case 128 iRe = "timestamp " End Select f_FieldType = iRe

VB6[1].0_导出excel_方法源代码

往链点点通共享资源,了解更多请登录https://www.doczj.com/doc/4a4641649.html, VB6.0 导出excel 方法源代码 方法一: 用Msflexgrid的Textmatrix属性取Msflexgrid中每一个单元格的内容,然后填到Excel表中,或者写成CSV格式 方法二: 直接把查询结果导出成Excel工作表 Public Sub Export(formname As Form, flexgridname As String) Dim xlApp As Object 'Excel.Application Dim xlBook As Object 'Excel.Workbook Dim xlSheet As Object 'Excel.Worksheet Screen.MousePointer = vbHourglass On Error GoTo Err_Proc Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlBook.Worksheets(1) 'Begin to fill data to sheet Dim i As Long Dim j As Integer Dim k As Integer With formname.Controls(flexgridname) For i = 0 To .rows - 1 k = 0 For j = 0 To .Cols - 1 If .colwidth(j) > 20 Or .colwidth(j) < 0 Then k = k + 1 xlSheet.Cells(i + 1, k).Value = "'" & .TextMatrix(i, j) End If Next j Next i End With xlApp.Visible = True Screen.MousePointer = vbDefault Exit Sub Err_Proc: Screen.MousePointer = vbDefault MsgBox "请确认您的电脑已安装Excel!", vbExclamation,"提示"

【Delphi】汇出Excel时,Excel单元格格式设置(附Delphi操作Excel方法)

【Delphi】汇出Excel时,Excel单元格格式设置(附Delphi操作Excel方法) 一个例子: excelworksheet1.Cells.Item[row,3]. numberformatlocal:='$#,##0.00;[红色]-$#,##0.00'; excelworksheet1.Cells.Item[row,3].Formula:='=SUM(R[-'+inttostr(row-rowflag+1)+']C:R[-1]C)'; excelworksheet1.Cells.Item[row,3].Borders[3].LineStyle :=xlContinuous; excelworksheet1.Cells.Item[row,3].Borders[4].LineStyle :=xlDouble; excelworksheet1.Cells.Item[row,4].Borders[3].LineStyle :=xlContinuous; excelworksheet1.Cells.Item[row,4].Borders[4].LineStyle :=xlDouble; excelworksheet1.Cells.Item[row,4].Formula:='=R[-1]C'; 注:不知道公式及格式,均可通过录制宏找出对应公式及格式。 效果如下图: 资料来自网络 单元格设置 1.设置单元格线框 Excel.ActiveSheet.Range[B10:C13].Borders[N].LineStyle := xlNone Excel.ActiveSheet.Range[B10:C13].Borders[N].Weight := xlThin

VB程序导出数据到Excel

vb导出数据到Excel Public Function ExporToExcel(strOpen As String,cn As ADODB.Connection) '入参为SQL查询语句,cn为当前活动的连接 '********************************************************* '* 名称:ExporToExcel '* 功能:导出数据到EXCEL '* 用法:ExporToExcel(sql查询字符串) '********************************************************* Dim Rs_Data As New ADODB.Recordset Dim Irowcount As Integer Dim Icolcount As Integer Dim FILENAME As String Dim xlApp As New Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Dim xlQuery As Excel.QueryT able With Rs_Data If .State = adStateOpen Then .Close End If .ActiveConnection = Cn .CursorLocation = adUseClient .CursorType = adOpenStatic .LockType = adLockReadOnly .Source = strOpen .Open End With With Rs_Data If .RecordCount < 1 Then MsgBox ("没有记录!") Exit Function End If '记录总数 Irowcount = .RecordCount '字段总数 Icolcount = .Fields.Count End With Set xlApp = CreateObject("Excel.Application") Set xlBook = Nothing Set xlSheet = Nothing

VB中调用Excel生成图表(精品文档)

VB中调用Excel生成图表 添加时间:2004-9-3 查看:298次 编写数据库程序的最后步骤一般都是通过查询检索生成各种报表、图形等,在VB中通过调用Exc el的图表制作功能可以生成各种复杂的图表,使编程过程得以简化。举例如下:新建工程,在Form1窗口添加Command1按钮,编写程序在Excel中添加数据并生成饼图。 Private Sub Command1_Click() Dim x1 As Excel.Application '声明数据类型 Set x1 = CreateObject(""Excel.Application"") '创建实例 x1.Workbooks.Add '添加工作簿 x1.Visible = True x1.Range(""A1"").Value = 1 'A1格赋值 x1.Range(""B1"").Value = 2 'B1格赋值 x1.Range(""C1"").Value = 3 'C1格赋值 x1.Range(""D1"").Value = 4 'D1格赋值 x1.Range(""A1"", ""D1"").Borders.LineStyle = xlContinuous '单元格边框 x1.ActiveSheet.Rows.HorizontalAlignment = xlVAlignCenter x1.ActiveSheet.Rows.VerticalAlignment = xlVAlignCenter '上下、左右居中 Set ct = x1.Worksheets(""sheet1"").ChartObjects.Add(10, 40, 220, 120) '插入图形 ct.Chart.ChartType = xl3DPie '图形类型为饼图 ct.Chart.SetSourceData Source:=Sheets(""Sheet1"").Range(""A1:D1""), PlotBy:=xl Rows '图形数据来源 With ct.Chart

【免费下载】Delphi汇出Excel时Excel单元格格式设置附Delphi操作Excel方法

【Delphi】汇出Excel 时,Excel 单元格格式设置(附Delphi 操作Excel 方法)一个例子:excelworksheet1.Cells.Item[row,3]. numberformatlocal:='$#,##0.00;[红色]-$#,##0.00'; excelworksheet1.Cells.Item[row,3].Formula:='=SUM(R[-'+inttostr(row-rowflag+1)+']C:R[-1]C)'; excelworksheet1.Cells.Item[row,3].Borders[3].LineStyle :=xlContinuous;excelworksheet1.Cells.Item[row,3].Borders[4].LineStyle :=xlDouble;excelworksheet1.Cells.Item[row,4].Borders[3].LineStyle :=xlContinuous;excelworksheet1.Cells.Item[row,4].Borders[4].LineStyle :=xlDouble;excelworksheet1.Cells.Item[row,4].Formula:='=R[-1]C';注:不知道公式及格式,均可通过录制宏找出对应公式及格式。 效果如下图: 资料来自网络单元格设置1.设置单元格线框Excel.ActiveSheet.Range[B10:C13].Borders[N].LineStyle := xlNone Excel.ActiveSheet.Range[B10:C13].Borders[N].Weight := xlThin 、管路敷设技术通过管线敷设技术,不仅可以解决吊顶层配置不规范问题,而且可保障各类管路习题到位。在管路敷设过程中,要加强看护关于管路高中资料试卷连接管口处理高中资料试卷弯扁度固定盒位置保护层防腐跨接地线弯曲半径标高等,要求技术交底。管线敷设技术中包含线槽、管架等多项方式,为解决高中语文电气课件中管壁薄、接口不严等问题,合理利用管线敷设技术。线缆敷设原则:在分线盒处,当不同电压回路交叉时,应采用金属隔板进行隔开处理;同一线槽内,强电回路须同时切断习题电源,线缆敷设完毕,要进行检查和检测处理。、电气课件中调试对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料试卷相互作用与相互关系,根据生产工艺高中资料试卷要求,对电气设备进行空载与带负荷下高中资料试卷调控试验;对设备进行调整使其在正常工况下与过度工作下都可以正常工作;对于继电保护进行整核对定值,审核与校对图纸,编写复杂设备与装置高中资料试卷调试方案,编写重要设备高中资料试卷试验方案以及系统启动方案;对整套启动过程中高中资料试卷电气设备进行调试工作并且进行过关运行高中资料试卷技术指导。对于调试过程中高中资料试卷技术问题,作为调试人员,需要在事前掌握图纸资料、设备制造厂家出具高中资料试卷试验报告与相关技术资料,并且了解现场设备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。、电气设备调试高中资料试卷技术电力保护装置调试技术,电力保护高中资料试卷配置技术是指机组在进行继电保护高中资料试卷总体配置时,需要在最大限度内来确保机组高中资料试卷安全,并且尽可能地缩小故障高中资料试卷破坏范围,或者对某些异常高中资料试卷工况进行自动处理,尤其要避免错误高中资料试卷保护装置动作,并且拒绝动作,来避免不必要高中资料试卷突然停机。因此,电力高中资料试卷保护装置调试技术,要求电力保护装置做到准确灵活。对于差动保护装置高中资料试卷调试技术是指发电机一变压器组在发生内部故障时,需要进行外部电源高中资料试卷切除从而采用高中资料试卷主要保护装置。

VB处理EXCEL数据方法

在VB中要想调用Excel,需要打开VB编程环境“工程”菜单中的“引用”项目,并选取项目中的“Microsoft Excel 11.0 object library”项。由于你的Excel 版本不同,所以这个选项的版本号也是不同的。 因为EXCEL是以层次结构组织对象的,其对象模型中含有许多不同的对象元素。 第一层:Application对象,即Excel本身; 第二层:workbooks对象集,指Excel的工作簿文件; 第三层:worksheets对象集,表示的是Excel的一个工作表; 第四层:Cells和Range对象,指向Excel工作表中的单元格。 新建立一个VB的工程,先放一个button,名称为Excel_Out。先定义好各层: Dim xlapp As Excel.Application 'Excel对象 Dim xlbook As Excel.Workbook '工作簿 Dim xlsheet As Excel.Worksheet '工作表 我们打算做的是:打开/新建一个excel,在其中对某工作表的一些单元格修改其值,然后另存为test.xls文件。 Private Sub Excel_Out_Click() Dim i, j As Integer Set xlapp = CreateObject("Excel.Application") '创建EXCEL对象 'Set xlbook = xlapp.Workbooks.Open(App.Path & "\test.xls") '打开已经存在的test.xls工件簿文件 Set xlbook = xlapp.Workbooks.Add '新建EXCEL工件簿文件 'xlbook.RunAutoMacros (xlAutoOpen) '运行EXCEL启动宏 'xlbook.RunAutoMacros (xlAutoClose) '运行EXCEL关闭宏 xlapp.Visible = True '设置EXCEL对象可见(或不可见) Set xlsheet = xlbook.Worksheets(1) '设置活动工作表'' ''~~~当前工作簿的第一页,这里也可以换成“表名” '下面就是简单的在一些单元格内写入数字 For i = 7 To 15 For j = 1 To 10 xlsheet.Cells(i, j) = j '当前工作簿第一页的第I行第J列 Next j Next i With xlsheet '设置边框为是实线 .Range(.Cells(7, 1), .Cells(28, 29)).Borders.LineStyle =

使用VB实现Excel自动获取外部数据

表格生成和公式设置十分强大便利,是一个强有力地信息分析与处理工具. 是一套可视化、面向对象、事件驱动方式地结构化高级程序设计语言,正成为高效率地应用程序开发工具.由于微软地努力,应用程序版可作为一种通用宏语言被所有微软可编程应用软件共享. 面始之初带有表格处理类软件中功能最强地宏语言,通过单击“工具”菜单中地“宏”,选择宏名来调用宏过程.随后发展至专用版,可制作按钮、复选框、单选钮等控件,赋控件以宏名,单击控件运行宏,事件驱动方式就(单击)一种.新近推出地套件中地,在“工具”菜单中选择“宏”后,就会发现增加了“编辑器”功能.运用这个新增功能,就完全与编程无异了.在菜单栏上单击鼠标右键,选择弹出式菜单中地“控件工具箱”,在“控件工具箱”工具条上,单击待添加地控件按钮,在工作表中将控件拖曳到所需位置和大小,单击鼠标右键选中“属性”设置控件属性后,双击控件就会出现编辑器.选择该控件地一个事件如或,编写程序.在工作表中操作该控件,如鼠标单击、键入字符等,则触发相应事件,执行相应程序. 笔者在平台,采用应用程序版开发了一套“通用报表分析系统”.该系统用于拥有众多子公司地母公司地每月财务报表合并汇总.所有子公司地统计报表如资产负债表、损益表是由编制地财务软件生成地文件,取名为月份资产负债表,月份损益表等.一个子公司地所有文件放在一个单独地目录中,如:\\,:\\等.母公司每月份生成地汇总报表为(年份,月份),它有“资产负债表”、“损益表”等若干工作表组成.每张工作表是由所有子公司相应地文件地相应项目地数据相加而成.只要将文件逐一转化到中去,很容易利用地公式设置功能生成母公司地每张汇总报表. 这套系统地关键在于如何将所有文件转换到同一个工作簿中.直接通过“文件”菜单中地“打开”项, 选择文件类型为文件(*), 可将文件转换到工作簿中,但这工作簿只存转换而来地一张工作表,其他表都自动关闭了.另外,通过“工具”菜单中地“向导”,选择“文件转换”后,只是将一系列文件转换为一系列文件而已.于是采用建立数据源获取外部数据地办法, 将文件逐一转换到一个工作簿内, 且用将转换过程自动化.只要按一下图中地“生成报表”按钮, 就能完成所有文件地转换, 且利用公式自动计算功能完成所有报表地汇总计算.按“显示报表”按钮,选择表名,可以浏览报表数据. 具体地方法是: 一、建立数据源 () 打开“数据”菜单, 选择“获取外部数据”, 然后单击“新建查询”; () 在“选择数据源”对话框中, 双击“<新数据源>”; () 出现“创建新数据源”对话框,输入数据源名称, 选择驱动程序如(*), 单击“连接”; () 在“安装”对话框中, 单击“使用当前工作目录”前地复选框, 去掉缺省( , 单击“选定目录()”, 选择子公司存放文件地目录如:\\, 连按“确定”; () 当出现对话框时, 单击“关闭”, 退出.不要理会出现地警示信息,因为此时只需建立数据源, 并不需要用查询数据;

相关主题
文本预览
相关文档 最新文档