通用EXCEL清册比对合并
信息化时代,办公电子化已成了每个部门单位不可或缺的组成部分,其中也免不了要经常
使用微软的EXCEL电子表格,通过对电子表格的灵活运用,极大方便和提高了办公效率。
在具体工作中,经常会碰到两张电子表格的比对或合并问题。即你所需要的信息往往是在
两张不同的表格中。如果要手工把两张表格的内容根据某个关键字段比对或合并在一起,将会
消耗您大量宝贵的时间和精力。为此,作者专门编写了一个通用的EXCEL清册比对合并软件,来
提高效率,并把它分享给每一位需要的朋友。大家如果在使用中发现问题或有更好的建议可以
联系QQ:175624411,或来信EMAIL:zjdyzqh@163.com,我将尽力予以吸纳改善该软件系统。
效果图:
代码如下:
//工徎文件
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2},
Unit3 in 'Unit3.pas' {Form3};
{$R *.res}
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.Title := '清册比对';
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
//主单元文件
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, StdCtrls, ComCtrls, ExtCtrls, Buttons; type TForm1 = class(TForm) btnGetData: TButton; sgSheet1: TStringGrid; Label1: TLabel; Label4: TLabel; Label5: TLabel; cmbSheet1: TComboBox; btnOk: TButton; Panel1: TPanel; Panel2: TPanel; chkTitle: TCheckBox; chkDispLabel: TCheckBox; Panel3: TPanel; chkDataRange: TCheckBox; rgDispLabel: TRadioGroup; edtDispLabelSheet1: TEdit; rgDataRange: TRadioGroup; Panel4: TPanel; edtDispLabelSheet2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; Label2: TLabel; Label3: TLabel; edtFile1: TEdit; bbtnOpen1: TBitBtn; Label6: TLabel; cmbSheet2: TComboBox; edtFile2: TEdit; bbtnOpen2: TBitBtn; sgSheet2: TStringGrid; edtTitle: TEdit; odFile1: TOpenDialog; odFile2: TOpenDialog; sbTip: TStatusBar; Label7: TLabel; Timer1: TTimer; procedure btnGetDataClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure sgSheet1SelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean); procedure Edit1KeyPress(Sender: TObject; var Key: Char); procedure Edit2KeyPress(Sender: TObject; var Key: Char); procedure sgSheet1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); procedure FormDestroy(Sender: TObject); procedure cmbSheet1KeyPress(Sender: TObject; var Key: Char); procedure sgSheet1Click(Sender: TObject); procedure btnOkClick(Sender: TObject); procedure bbtnOpen1Click(Sender: TObject); procedure bbtnOpen2Click(Sender: TObject); procedure chkTitleClick(Sender: TObject); procedure chkDispLabelClick(Sender: TObject); procedure chkDataRangeClick(Sender: TObject); procedure sgSheet2SelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean); procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure FormShow(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { Private declarations } procedure InitControlState; function InvalidCheck : Boolean; public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} uses ComObj, Gauges, Unit2, Unit3; var xlApp, xlWorkbook: Variant; FCheck, FUnCheck: TBitmap; //复选框位图 slSource: TStringList; //结果表内容 StartRowSheet1, StartRowSheet2: Cardinal; //起始行 EndRowSheet1, EndRowSheet2: Cardinal; //结尾行 PrimaryColSheet1, PrimaryColSheet2: Cardinal; //关键列 RowDispLabel1, RowDispLabel2: Cardinal; //字段所在行 t: byte;// 控制提示字符动起来 procedure TForm1.bbtnOpen1Click(Sender: TObject); var i: integer; begin odFile1.Filter := '*.xls'; if odFile1.Execute then begin if not FileExists(odFile1.FileName) then begin ShowMessage('你选择的文件不存在,请重新选择!'); Exit; end; edtFile1.ReadOnly := False; edtFile1.Text := odFile1.FileName; edtFile1.ReadOnly := True; //打开工作薄 xlWorkbook := xlApp.WorkBooks.Open(edtFile1.Text); //初始化工作表选项 cmbSheet1.Clear; for i := 1 to xlWorkbook.Sheets.Count do cmbSheet1.Items.Add(xlWorkbook.Sheets[i].name); cmbSheet1.ItemIndex := 0; xlWorkbook.Close; end; end; procedure TForm1.bbtnOpen2Click(Sender: TObject); var i: integer; begin odFile2.Filter := '*.xls'; if odFile2.Execute then begin if not FileExists(odFile2.FileName) then begin ShowMessage('你选择的文件不存在,请重新选择!'); Exit; end; edtFile2.ReadOnly := False; edtFile2.Text := odFile2.FileName; edtFile2.ReadOnly := True; //打开工作薄 xlWorkbook := xlApp.WorkBooks.Open(edtFile2.Text); //初始化工作表选项 cmbSheet2.Clear; for i := 1 to xlWorkbook.Sheets.Count do cmbSheet2.Items.Add(xlWorkbook.Sheets[i].name); cmbSheet2.ItemIndex := 0; xlWorkbook.Close; end; end; procedure TForm1.btnGetDataClick(Sender: TObject); var x, y: Integer; frm: TForm; //显示进度条的窗体 gg: TGauge; {var id : THandle;} begin //有效性检验 if (cmbSheet1.Text = '') or (cmbSheet2.Text = '') then begin ShowMessage('请选择要操作的表格后再继续!'); Exit; end; chkDispLabel.Enabled := True; chkDataRange.Enabled := True; btnGetData.Enabled := False; Screen.Cursor := crHourGlass; //取得表一的已使用单元格行列总数 xlWorkbook := xlApp.WorkBooks.Open(edtFile1.Text); xlWorkbook.Sheets[cmbSheet1.Text].Activate; sgSheet1.RowCount := xlWorkbook.ActiveSheet.UsedRange.Rows.Count; sgSheet1.ColCount := xlWorkbook.ActiveSheet.UsedRange.Columns.Count; //显示进度条 frm := TForm.Create(nil); frm.BorderStyle := bsNone; //去掉边框 frm.Width := 402; frm.Height := 27; frm.Position := poScreenCenter; gg := TGauge.Create(frm); gg.Width := 400; gg.Height := 25; gg.Left := 1; gg.Top := 1; gg.MinValue := 0; gg.MaxValue := sgSheet1.RowCount; gg.Parent := frm; gg.BackColor := clSilver; gg.ForeColor := clMoneyGreen; frm.Show; //ShowModal会阻塞 frm.BringToFront; //绘复选框状态 准备 for x := 0 to sgSheet1.ColCount - 1 do sgSheet1.Cells[x, 0] := 'y'; //赋值到StringGrid for x := 0 to sgSheet1.RowCount-1 do begin for y := 0 to sgSheet1.ColCount-1 do begin try sgSheet1.Cells[y, x+1] := xlWorkbook.ActiveSheet.cells[x+1, y+1].value; Application.ProcessMessages; except ShowMessage('出错在表格'+'['+Inttostr(x+1)+','+Inttostr(y+1)+']单元格,请检查!'); exit; end; end; gg.Progress := gg.Progress + 1; end; //设置列宽 for y := 0 to sgSheet1.ColCount-1 do sgSheet1.ColWidths[y] := xlWorkbook.ActiveSheet.Columns[y+1].ColumnWidth*5; //关闭 xlWorkbook.Close; //取得表二的已使用单元格行列总数 xlWorkbook := xlApp.WorkBooks.Open(edtFile2.Text); xlWorkbook.Sheets[cmbSheet2.Text].Activate; sgSheet2.RowCount := xlWorkbook.ActiveSheet.UsedRange.Rows.Count; sgSheet2.ColCount := xlWorkbook.ActiveSheet.UsedRange.Columns.Count; //进度条复位 gg.Progress := 0; gg.MaxValue := sgSheet2.RowCount; //赋值到StringGrid for x := 0 to sgSheet2.ColCount - 1 do sgSheet2.Cells[x, 0] := 'y'; for x := 0 to sgSheet2.RowCount-1 do begin for y := 0 to sgSheet2.ColCount-1 do begin sgSheet2.Cells[y, x+1] := xlWorkbook.ActiveSheet.cells[x+1, y+1].value; Application.ProcessMessages; end; gg.Progress := gg.Progress + 1; end; //设置列宽 for y := 0 to sgSheet2.ColCount-1 do sgSheet2.ColWidths[y] := xlWorkbook.ActiveSheet.Columns[y+1].ColumnWidth*5; //退出进度条窗体 frm.ModalResult := 1; frm.Free; btnGetData.Enabled := True; Screen.Cursor := crDefault; // CreateThread(nil, 0, @GetData, nil, 0, id); end; procedure TForm1.btnOkClick(Sender: TObject); var i,j,k : integer; ccols: integer; s : string; //表格的行内容 arrFlag1, arrFlag2: array of Boolean; //存放两张表有否相同记录的标志 sdSaveName: TSaveDialog; sFile: string; //保存的文件名 colWidth: array of integer;//输出表列宽 begin slSource.Clear; //有效性检查 if not InvalidCheck then Exit; chkDispLabel.Enabled := False; chkDataRange.Enabled := False; btnOk.Enabled := False; Screen.Cursor := crHourGlass; //保存已选输出列的列宽到数组 for i := 0 to sgSheet1.ColCount - 1 do if sgSheet1.Cells[i, 0] = 'y' then begin //表一列宽 setLength(colWidth, Length(colWidth)+1); colWidth[High(colWidth)] := sgSheet1.ColWidths[i]; end; //表二列宽 for i := 0 to sgSheet2.ColCount - 1 do if sgSheet2.Cells[i, 0] = 'y' then begin setLength(colWidth, Length(colWidth)+1); colWidth[High(colWidth)] := sgSheet2.ColWidths[i]; end; //开始比对合并 slSource.Add(edtTitle.Text); if chkDispLabel.Checked then begin for i := 0 to sgSheet1.ColCount - 1 do if sgSheet1.Cells[i, 0] = 'y' then begin s := s + sgSheet1.Cells[i, RowDispLabel1] + Chr(9); //保存已选输出列的列宽到数组 setLength(colWidth, Length(colWidth)+1); colWidth[High(colWidth)] := sgSheet1.ColWidths[i] div 5; end; for i := 0 to sgSheet2.ColCount - 1 do if sgSheet2.Cells[i, 0] = 'y' then begin s := s + sgSheet2.Cells[i, RowDispLabel2] + Chr(9); //保存已选输出列的列宽到数组 setLength(colWidth, Length(colWidth)+1); colWidth[High(colWidth)] := sgSheet2.ColWidths[i] div 5; end; //添加到字符串列表 slSource.Add(s); end; s := ''; SetLength(arrFlag1, sgSheet1.RowCount); SetLength(arrFlag2, sgSheet2.RowCount); for i := Low(arrFlag1) to High(arrFlag1) do arrFlag1[i] := False; for i := Low(arrFlag2) to High(arrFlag2) do arrFlag2[i] := False; //表间数据比对循环 for i := StartRowSheet1 to EndRowSheet1 do begin for j := StartRowSheet2 to EndRowSheet2 do begin if sgSheet1.Cells[PrimaryColSheet1, i] = sgSheet2.Cells[PrimaryColSheet2, j] then begin for k := 0 to sgSheet1.ColCount - 1 do if sgSheet1.Cells[k, 0] = 'y' then begin s := s + sgSheet1.Cells[k, i] + Chr(9); end; for k := 0 to sgSheet2.ColCount - 1 do if sgSheet2.Cells[k, 0] = 'y' then begin s := s + sgSheet2.Cells[k, j] + Chr(9); end; slSource.Add(s); //设置表二相应行号的比对标记 arrFlag1[i] := True; arrFlag2[j] := True; //退出 for j 的循环 Break; end;//if sgSheet1.cells end; //for j s := ''; end; //for i s := ''; //将表一独有或表二独有的记录添加到结果列表 for i := StartRowSheet1 to EndRowSheet1 do begin //表一独有 if not arrFlag1[i] then begin for k := 0 to sgSheet1.ColCount - 1 do if sgSheet1.Cells[k, 0] = 'y' then begin s := s + sgSheet1.Cells[k, i] + Chr(9); end; slSource.Add(s); s := ''; end; end; //表二独有 for i := StartRowSheet2 to EndRowSheet2 do begin if not arrFlag2[i] then begin for k := 0 to sgSheet1.ColCount - 1 do if sgSheet1.Cells[k, 0] = 'y' then begin s := s + Chr(64) + Chr(9); end; for k := 0 to sgSheet2.ColCount - 1 do if sgSheet2.Cells[k, 0] = 'y' then begin s := s + sgSheet2.Cells[k, i] + Chr(9); end; slSource.Add(s); s := ''; end; end; btnOk.Enabled := True; Screen.Cursor := crDefault; //保存结果 sdSaveName := TSaveDialog.Create(nil); try sdSaveName.Filter := '*.xls'; if sdSaveName.Execute then begin if ExtractFileExt(sdSaveName.FileName) <> '.xls' then sdSaveName.FileName := sdSaveName.FileName + '.xls'; if FileExists(sdSaveName.FileName) then begin if ID_NO = Application.MessageBox('文件已存在,是否覆盖!', '提示', MB_YesNo) then begin Exit; end; end; sFile := sdSaveName.FileName; slSource.SaveToFile(sFile); ShowMessage('恭喜,保存成功!'); //关闭打开的Excel工作薄 ,为打开结果表准备 if not VarIsEmpty(xlApp) then begin xlApp.Workbooks.Close; xlWorkbook := UnAssigned; end; xlWorkbook := xlApp.WorkBooks.Open(sFile); //是否要设置格式 if ID_YES = Application.MessageBox('是否要设置结果表显示格式!', '提示', MB_YesNo) then begin //设置单元格格式 //列宽 和//标题 ccols := xlWorkbook.ActiveSheet.UsedRange.Columns.Count; for i := 0 to ccols - 1 do xlWorkbook.ActiveSheet.Columns[i+1].ColumnWidth := colWidth[i]; xlWorkbook.ActiveSheet.Range['A1:'+Char(64+ccols)+'1'].Merge; xlWorkbook.ActiveSheet.Rows[1].RowHeight := 1.2/0.035; xlWorkbook.ActiveSheet.Rows[1].Font.Name := '隶书'; xlWorkbook.ActiveSheet.Rows[1].Font.Size := 16; xlWorkbook.ActiveSheet.Rows[1].Font.Bold := True; xlWorkbook.ActiveSheet.Rows[1].Font.Color := clBlue; xlWorkbook.ActiveSheet.Rows[1].HorizontalAlignment := 3; //水平居中 xlWorkbook.ActiveSheet.Rows[1].VerticalAlignment:= 2; //垂直居中 //按指定条件 设置单元格格式 With TForm2.Create(Self, xlWorkbook) do begin ShowModal; end; end; //是否打开工作表提示 { if ID_NO = Application.MessageBox('是否打开保存的结果表!', '提示', MB_YesNo) then begin Exit; end; } //显示 xlApp.Visible := True; end; finally sdSaveName.Free; end; end; procedure TForm1.chkDataRangeClick(Sender: TObject); begin rgDataRange.Enabled := chkDataRange.Checked; if chkDataRange.Checked then rgDataRange.ItemIndex := 0; end; procedure TForm1.chkDispLabelClick(Sender: TObject); begin rgDispLabel.Enabled := chkDispLabel.Checked; if chkDispLabel.Checked then rgDispLabel.ItemIndex := 0; end; procedure TForm1.chkTitleClick(Sender: TObject); begin edtTitle.Enabled := chkTitle.Checked; end; procedure TForm1.cmbSheet1KeyPress(Sender: TObject; var Key: Char); begin key := #0; end; procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if not (key in ['0'..'9', #13, #8]) then key := #0; end; procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char); begin if not (key in ['0'..'9', #13, #8]) then key := #0; end; procedure TForm1.FormCreate(Sender: TObject); var i: integer; bmp: TBitmap; begin btnGetData.Caption := '提取数据'; btnOk.Caption := '比对合并'; sbTip.Panels[0].Text := ' ' + FormatDateTime('yyyy-mm-dd', now) + ' '+ FormatDateTime('ddd', now); //打开Excel try xlApp := CreateOleObject('EXCEL.Application'); except ShowMessage('打开Excel文件有误或你的系统未安装Excel!'); xlApp.Quit; xlApp := Unassigned; exit; end; //创建CheckBox选择框图 FCheck := TBitmap.Create; FUnCheck := TBitmap.Create; //画CheckBox 选择框 (先取得系统的复选框位图) bmp := TBitmap.Create; try bmp.Handle := LoadBitmap(0, PChar(OBM_CHECKBOXES)); with FUnCheck do begin width := bmp.Width div 4; height := bmp.Height div 3; Canvas.CopyRect(Canvas.ClipRect, bmp.Canvas, Canvas.ClipRect); end; with FCheck do begin width := bmp.Width div 4; height := bmp.Height div 3; Canvas.CopyRect(Canvas.ClipRect, bmp.Canvas, Rect(width, 0, 2*width, height)); end; finally bmp.Free; end; //初始化控件状态 InitControlState; edtTitle.Enabled := True; edtTitle.Text := '结果数据表'; edtTitle.Enabled := False; //初始化 StringList slSource:= TStringList.Create; end; procedure TForm1.FormDestroy(Sender: TObject); begin xlWorkbook := Unassigned; if not VarIsEmpty(xlApp) then begin xlApp.Quit; xlApp := Unassigned; end; FCheck.Free; FUnCheck.Free; slSource.Free; end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Key = VK_F1) then begin with TForm3.Create(Self) do begin ShowModal; end; end; end; procedure TForm1.FormShow(Sender: TObject); begin //初始化焦点放在打开文件按钮上 bbtnOpen1.SetFocus; end; procedure TForm1.sgSheet1Click(Sender: TObject); begin if TStringGrid(Sender).Row = 0 then if TStringGrid(Sender).Cells[TStringGrid(Sender).Col, 0] = 'y' then TStringGrid(Sender).Cells[TStringGrid(Sender).Col, 0] := 'n' else TStringGrid(Sender).Cells[TStringGrid(Sender).Col, 0] := 'y'; end; procedure TForm1.sgSheet1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); begin //if not (gdFocused in State) then Exit; with TStringGrid(Sender) do begin //去除蓝色的选框 Canvas.Brush.Color := clWindow; Canvas.FillRect(Rect); Canvas.Font.Color := clWindowText; Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, Cells[ACol, ARow]); //如果选中则画焦点框 if gdFocused in State then Canvas.DrawFocusRect(Rect); if ARow = 0 then begin if Cells[ACol, ARow] = 'y' then begin Canvas.Draw(Rect.Left+2, Rect.Top+2, FCheck); Canvas.TextOut(Rect.Left+3+FCheck.Width, Rect.Top+2, '列输出'); end; if Cells[ACol, ARow] = 'n' then begin Canvas.Draw(Rect.Left+2, Rect.Top+2, FUnCheck); Canvas.TextOut(Rect.Left+3+FCheck.Width, Rect.Top+2, '列输出'); end; end; end; end; //选择单元格时,把内容显示出来 procedure TForm1.sgSheet1SelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean); begin if Arow > 0 then begin if chkDispLabel.Checked and (rgDispLabel.ItemIndex = 0) then begin edtDispLabelSheet1.ReadOnly := False; edtDispLabelSheet1.Text := sgSheet1.Cells[ACol, ARow]+ '['+IntToStr(ARow)+']'; edtDispLabelSheet1.ReadOnly := True; RowDispLabel1 := ARow; //表一的字段所在行 end; if chkDataRange.Checked then begin if rgDataRange.ItemIndex = 0 then begin Edit3.ReadOnly := False; Edit3.Text := sgSheet1.Cells[ACol, ARow] + '['+IntToStr(ARow)+']'; Edit3.ReadOnly := True; StartRowSheet1 := ARow;//表一的数据起始行 PrimaryColSheet1 := ACol; end; if rgDataRange.ItemIndex = 1 then begin Edit4.ReadOnly := False; Edit4.Text := sgSheet1.Cells[ACol, ARow]+ '['+IntToStr(ARow)+']'; Edit4.ReadOnly := True; EndRowSheet1 := ARow; //表一的数据结尾行 end; end; end; end; procedure TForm1.sgSheet2SelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean); begin if Arow > 0 then begin if chkDispLabel.Checked and (rgDispLabel.ItemIndex = 1) then begin edtDispLabelSheet2.ReadOnly := False; edtDispLabelSheet2.Text := sgSheet2.Cells[ACol, ARow]+ '['+IntToStr(ARow)+']'; edtDispLabelSheet2.ReadOnly := True; RowDispLabel2 := ARow; //表二的字段所在行 end; if chkDataRange.Checked then begin if rgDataRange.ItemIndex = 2 then begin Edit5.ReadOnly := False; Edit5.Text := sgSheet2.Cells[ACol, ARow] + '['+IntToStr(ACol)+','+IntToStr(ARow)+']'; Edit5.ReadOnly := True; StartRowSheet2 := ARow;//表二的数据起始行 PrimaryColSheet2 := ACol; end; if rgDataRange.ItemIndex = 3 then begin Edit6.ReadOnly := False; Edit6.Text := sgSheet2.Cells[ACol, ARow]+ '['+IntToStr(ARow)+']'; Edit6.ReadOnly := True; EndRowSheet2 := ARow; //表二的数据结尾行 end; end; end; end; procedure TForm1.Timer1Timer(Sender: TObject); begin //根据 t 值的不同动起来 case t of 0: sbTip.Panels[2].Alignment := taLeftJustify; 1: sbTip.Panels[2].Alignment := taCenter; 2: sbTip.Panels[2].Alignment := taRightJustify; end; inc(t); if t = 3 then t:= 0; end; procedure TForm1.InitControlState; var i : integer; begin edtFile1.ReadOnly := True; edtFile2.ReadOnly := True; for i := 0 to Panel2.ControlCount - 1 do if Panel2.Controls[i] is TEdit then TEdit(Panel2.Controls[I]).ReadOnly := True; rgDispLabel.Enabled := False; rgDataRange.Enabled := False; chkDispLabel.Enabled := False; chkDataRange.Enabled := False; end; function TForm1.InvalidCheck : Boolean; begin Result := True; //如果数据区域未设置则提示 if not chkDataRange.Checked then begin Result := False; ShowMessage('请先设置数据区域后再继续!'); Exit; end else if (Edit3.Text='') or (Edit4.Text='') or (Edit5.Text='') or (Edit6.Text='') or (rgDataRange.ItemIndex <> 4) then begin Result := False; ShowMessage('请先把数据区域的各项参数设置完整后再继续!'); Exit; end; //字段设置完整性检查 if chkDispLabel.Checked then begin if (edtDispLabelSheet1.Text='') or (edtDispLabelSheet2.Text='') or (rgDispLabel.ItemIndex <> 2) then begin Result := False; ShowMessage('请先把字段区域的各项参数设置完整后再继续!'); Exit; end; end; end; end.
//主窗体文件
object Form1: TForm1 Left = 0 Top = 0 BorderIcons = [biSystemMenu, biMinimize] Caption = #36890#29992#28165#20876#27604#23545#21512#24182 ClientHeight = 541 ClientWidth = 676 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False Position = poOwnerFormCenter OnCreate = FormCreate OnDestroy = FormDestroy OnKeyDown = FormKeyDown OnShow = FormShow PixelsPerInch = 96 TextHeight = 13 object Label4: TLabel Left = 271 Top = 70 Width = 12 Height = 39 Caption = #24037#20316#34920 WordWrap = True end object Label5: TLabel Left = 271 Top = 295 Width = 12 Height = 39 Caption = #24037#20316#34920 Font.Charset = DEFAULT_CHARSET Font.Color = clBlack Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] ParentFont = False WordWrap = True end object Label1: TLabel Left = 8 Top = 56 Width = 48 Height = 19 Caption = #34920#19968#65306 Font.Charset = DEFAULT_CHARSET Font.Color = clMenuHighlight Font.Height = -16 Font.Name = 'Tahoma' Font.Style = [] ParentFont = False end object Label2: TLabel Left = 5 Top = 289 Width = 48 Height = 19 Caption = #34920#20108#65306 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clMenuHighlight Font.Height = -16 Font.Name = 'Tahoma' Font.Style = [] ParentColor = False ParentFont = False end object Label3: TLabel Left = 13 Top = 91 Width = 48 Height = 13 Caption = #36873#25321#25991#20214 Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] ParentFont = False end object Label6: TLabel Left = 401 Top = 66 Width = 80 Height = 19 Caption = #21442#25968#35774#32622#65306 Font.Charset = DEFAULT_CHARSET Font.Color = clMenuHighlight Font.Height = -16 Font.Name = 'Tahoma' Font.Style = [] ParentFont = False end object Label7: TLabel Left = 8 Top = 320 Width = 48 Height = 13 Caption = #36873#25321#25991#20214 end object sgSheet1: TStringGrid Left = 5 Top = 117 Width = 363 Height = 166 DefaultDrawing = False FixedCols = 0 FixedRows = 0 Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goColSizing] TabOrder = 0 OnClick = sgSheet1Click OnDrawCell = sgSheet1DrawCell OnKeyDown = FormKeyDown OnSelectCell = sgSheet1SelectCell end object cmbSheet1: TComboBox Left = 290 Top = 88 Width = 80 Height = 21 Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] ImeName = #20013#25991' ('#31616#20307') - '#19975#33021#20116#31508#20869#32622#36755#20837#27861 ParentFont = False TabOrder = 1 OnKeyDown = FormKeyDown OnKeyPress = cmbSheet1KeyPress end object Panel1: TPanel Left = 385 Top = 467 Width = 113 Height = 44 TabOrder = 2 object btnGetData: TButton Left = 1 Top = 1 Width = 111 Height = 41 Caption = 'btnGetData' TabOrder = 0 OnClick = btnGetDataClick end end object Panel2: TPanel Left = 385 Top = 91 Width = 283 Height = 369 TabOrder = 3 object chkTitle: TCheckBox Left = 16 Top = 20 Width = 86 Height = 17 Caption = #36755#20986#34920#26631#39064 TabOrder = 0 OnClick = chkTitleClick OnKeyDown = FormKeyDown end object chkDispLabel: TCheckBox Left = 16 Top = 62 Width = 97 Height = 17 Caption = #26174#31034#23383#27573#35774#32622 TabOrder = 1 OnClick = chkDispLabelClick OnKeyDown = FormKeyDown end object chkDataRange: TCheckBox Left = 16 Top = 187 Width = 97 Height = 17 Caption = #25968#25454#21306#22495#35774#32622 TabOrder = 2 OnClick = chkDataRangeClick OnKeyDown = FormKeyDown end object rgDispLabel: TRadioGroup Left = 16 Top = 81 Width = 170 Height = 81 Items.Strings = ( #34920#19968#23383#27573#25152#22312#34892#65288#20219#24847#21015#65289 #34920#20108#23383#27573#25152#22312#34892#65288#20219#24847#21015#65289 #23383#27573#35774#32622#23436#25104) TabOrder = 3 end object edtDispLabelSheet1: TEdit Left = 187 Top = 97 Width = 89 Height = 21 ImeName = #20013#25991' ('#31616#20307') - '#19975#33021#20116#31508#20869#32622#36755#20837#27861 TabOrder = 4 OnKeyDown = FormKeyDown end object rgDataRange: TRadioGroup Left = 16 Top = 205 Width = 169 Height = 148 Items.Strings = ( #34920#19968#36215#22987#34892#65288#20851#38190#21015#65289 #34920#19968#32467#23614#34892#65288#20219#24847#21015#65289 #34920#20108#36215#22987#34892#65288#20851#38190#21015#65289 #34920#20108#32467#23614#34892#65288#20219#24847#21015#65289 #25968#25454#21306#22495#35774#32622#23436#25104) TabOrder = 5 end object edtDispLabelSheet2: TEdit Left = 186 Top = 121 Width = 89 Height = 21 ImeName = #20013#25991' ('#31616#20307') - '#19975#33021#20116#31508#20869#32622#36755#20837#27861 TabOrder = 6 OnKeyDown = FormKeyDown end object Edit3: TEdit Left = 186 Top = 222 Width = 89 Height = 21 ImeName = #20013#25991' ('#31616#20307') - '#19975#33021#20116#31508#20869#32622#36755#20837#27861 TabOrder = 7 OnKeyDown = FormKeyDown end object Edit4: TEdit Left = 186 Top = 246 Width = 89 Height = 21 ImeName = #20013#25991' ('#31616#20307') - '#19975#33021#20116#31508#20869#32622#36755#20837#27861 TabOrder = 8 OnKeyDown = FormKeyDown end object Edit5: TEdit Left = 186 Top = 272 Width = 89 Height = 21 ImeName = #20013#25991' ('#31616#20307') - '#19975#33021#20116#31508#20869#32622#36755#20837#27861 TabOrder = 9 OnKeyDown = FormKeyDown end object Edit6: TEdit Left = 186 Top = 298 Width = 89 Height = 21 ImeName = #20013#25991' ('#31616#20307') - '#19975#33021#20116#31508#20869#32622#36755#20837#27861 TabOrder = 10 OnKeyDown = FormKeyDown end object edtTitle: TEdit Left = 107 Top = 18 Width = 170 Height = 21 ImeName = #20013#25991' ('#31616#20307') - '#19975#33021#20116#31508#20869#32622#36755#20837#27861 TabOrder = 11 OnKeyDown = FormKeyDown end end object Panel3: TPanel Left = 544 Top = 470 Width = 124 Height = 41 TabOrder = 4 object btnOk: TButton Left = 1 Top = 1 Width = 122 Height = 40 Caption = 'btnOk' TabOrder = 0 OnClick = btnOkClick end end object Panel4: TPanel Left = 0 Top = 0 Width = 676 Height = 49 Align = alTop BevelKind = bkTile BorderWidth = 2 BorderStyle = bsSingle Caption = #36890#29992'EXCEL'#28165#20876#25968#25454#27604#23545#21512#24182#31995#32479' V0.1' Font.Charset = DEFAULT_CHARSET Font.Color = clTeal Font.Height = -21 Font.Name = 'Tahoma' Font.Style = [fsBold] ParentFont = False TabOrder = 5 end object edtFile1: TEdit Left = 65 Top = 88 Width = 141 Height = 21 ImeName = #20013#25991' ('#31616#20307') - '#19975#33021#20116#31508#20869#32622#36755#20837#27861 TabOrder = 6 OnKeyDown = FormKeyDown end object bbtnOpen1: TBitBtn Left = 204 Top = 87 Width = 47 Height = 25 Caption = #25171#24320 Default = True DoubleBuffered = True Glyph.Data = { E6040000424DE604000000000000360000002800000014000000140000000100 180000000000B0040000232E0000232E00000000000000000001FFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 E7D852A75D67B3758FC79DB4D9BED5EBDCF0F7F2FFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85B68A0080 18007B0C008019008221008E32109B472BAB614DBA7D72CB9A98DBB8BCE8D1DC F2E6F8FCF9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5196572B9142008923 00903100983B009D4000A14500A54A00A74B00A34800A74E00AC5802B0602DBE 7DF0FAF5FFFFFFFFFFFFFFFFFFFFFFFFFDFDFD207B28368F4602913100933500 9B3F00A34900AA5300B25C01B96805BB6E06B66908B96E03B96D00B86BCCF1E2 FFFFFFFFFFFFFFFFFFFFFFFFEBF2EC036B0D2C833616994500993900A44A00AF 5900B96803C3790AC47E0DC47F10C48012C48013C6840BC784A9ECD6FFFFFFFF FFFFFFFFFFFFFFFFD2E2D30062001976202E9D54009A3B03A95015B35D1EC06F 12CB8614D59C17D09517CE911DD39B1ED6A020DAA689EDD3FFFFFFFFFFFFFFFF FFFFFFFFB4D0B60065000574103C9C57009B3E05A95121B46130C0752DCD8E17 D8A222DEAE26DEAD2DE3B632E8C046F0CE82F9E4FDFEFEFFFFFFFFFFFFFFFFFF 93BE97006700006F05439A551A9A50009A4108A65410AD5E16B9760DCF9624E1 B131E8BF3CEECB42F4D462FBE37CFEEDECFCFAFFFFFFFFFFFFFFFFFF70AA7600 650000730D0D892E59B48066A76C87AD788AA86D76C49750D1AA1EDAAB30EBC1 3FF1CE47F7D871FEEA78FFF0D0FDF7FFFFFFFFFFFFFFFFFF4F96550164000473 10017E1B049032717719DD8D3DD57C107FB8775CCA927CD5B01FDEB431E4BF3D EACB60F1DB61F5E0AFF9EEFFFFFFFFFFFFFFFFFF30863A726000A4711FA77F2E B08832B88531CA9A44C68E16CFA454BF8B30D5A56693CFB466DBBF78DFC8B6ED E3C8F6EEEBFDFAFFFFFFFFFFFFF2F7F71C81239E6D04CD903FC68C18D6A324DA AE2BD2A321C99213CE8A0EC7800BBC5B00A2B07A43FEE055E3BFFFFCFDFFFFFF FFFFFFFFFFFFFFFFFFDCEAE10A760F92760ECD8C3DBF8114CB9C28D5AE37DCB3 2ADDB52ACBBF58B2AF59ACA5607CDFBB2BF7D559DEBDFFFEFEFFFFFFFFFFFFFF FFFFFFFFFFC5DAC7006D020A780F3A934030A2532CAA5AB3913EE0AA3DD4B43E 2ED8AC0DD3A215D5AA17CFA40CC09281DAC1FFFFFFFFFFFFFFFFFFFFFFFFFFFF FFA2C4A400630000710B00760F00801E00811EB68220D5992DB8A33C18B0752E B37E60C7A28DD8C0B6E7D8F6FCFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86AF88 0045000058000D6A182C88435D974FC28724B27408C29E51EEF8F4FFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3EAE3AAC2AAC7 D8C7EAF0EAFFFFFFFFEAD5C18B2BA66D1BD0B286FFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFEFDF7F1E7F8F7F5FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFF} ModalResult = 6 ParentDoubleBuffered = False Spacing = 1 TabOrder = 7 OnClick = bbtnOpen1Click OnKeyDown = FormKeyDown end object cmbSheet2: TComboBox Left = 290 Top = 314 Width = 82 Height = 21 Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] ImeName = #20013#25991' ('#31616#20307') - '#19975#33021#20116#31508#20869#32622#36755#20837#27861 ParentFont = False TabOrder = 8 OnKeyDown = FormKeyDown OnKeyPress = cmbSheet1KeyPress end object edtFile2: TEdit Left = 65 Top = 314 Width = 141 Height = 21 ImeName = #20013#25991' ('#31616#20307') - '#19975#33021#20116#31508#20869#32622#36755#20837#27861 TabOrder = 9 end object bbtnOpen2: TBitBtn Left = 204 Top = 312 Width = 47 Height = 25 Margins.Left = 1 Margins.Top = 1 Margins.Right = 1 Margins.Bottom = 1 Caption = #25171#24320 DoubleBuffered = True Glyph.Data = { E6040000424DE604000000000000360000002800000014000000140000000100 180000000000B0040000232E0000232E00000000000000000001FFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 E7D852A75D67B3758FC79DB4D9BED5EBDCF0F7F2FFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85B68A0080 18007B0C008019008221008E32109B472BAB614DBA7D72CB9A98DBB8BCE8D1DC F2E6F8FCF9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5196572B9142008923 00903100983B009D4000A14500A54A00A74B00A34800A74E00AC5802B0602DBE 7DF0FAF5FFFFFFFFFFFFFFFFFFFFFFFFFDFDFD207B28368F4602913100933500 9B3F00A34900AA5300B25C01B96805BB6E06B66908B96E03B96D00B86BCCF1E2 FFFFFFFFFFFFFFFFFFFFFFFFEBF2EC036B0D2C833616994500993900A44A00AF 5900B96803C3790AC47E0DC47F10C48012C48013C6840BC784A9ECD6FFFFFFFF FFFFFFFFFFFFFFFFD2E2D30062001976202E9D54009A3B03A95015B35D1EC06F 12CB8614D59C17D09517CE911DD39B1ED6A020DAA689EDD3FFFFFFFFFFFFFFFF FFFFFFFFB4D0B60065000574103C9C57009B3E05A95121B46130C0752DCD8E17 D8A222DEAE26DEAD2DE3B632E8C046F0CE82F9E4FDFEFEFFFFFFFFFFFFFFFFFF 93BE97006700006F05439A551A9A50009A4108A65410AD5E16B9760DCF9624E1 B131E8BF3CEECB42F4D462FBE37CFEEDECFCFAFFFFFFFFFFFFFFFFFF70AA7600 650000730D0D892E59B48066A76C87AD788AA86D76C49750D1AA1EDAAB30EBC1 3FF1CE47F7D871FEEA78FFF0D0FDF7FFFFFFFFFFFFFFFFFF4F96550164000473 10017E1B049032717719DD8D3DD57C107FB8775CCA927CD5B01FDEB431E4BF3D EACB60F1DB61F5E0AFF9EEFFFFFFFFFFFFFFFFFF30863A726000A4711FA77F2E B08832B88531CA9A44C68E16CFA454BF8B30D5A56693CFB466DBBF78DFC8B6ED E3C8F6EEEBFDFAFFFFFFFFFFFFF2F7F71C81239E6D04CD903FC68C18D6A324DA AE2BD2A321C99213CE8A0EC7800BBC5B00A2B07A43FEE055E3BFFFFCFDFFFFFF FFFFFFFFFFFFFFFFFFDCEAE10A760F92760ECD8C3DBF8114CB9C28D5AE37DCB3 2ADDB52ACBBF58B2AF59ACA5607CDFBB2BF7D559DEBDFFFEFEFFFFFFFFFFFFFF FFFFFFFFFFC5DAC7006D020A780F3A934030A2532CAA5AB3913EE0AA3DD4B43E 2ED8AC0DD3A215D5AA17CFA40CC09281DAC1FFFFFFFFFFFFFFFFFFFFFFFFFFFF FFA2C4A400630000710B00760F00801E00811EB68220D5992DB8A33C18B0752E B37E60C7A28DD8C0B6E7D8F6FCFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86AF88 0045000058000D6A182C88435D974FC28724B27408C29E51EEF8F4FFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3EAE3AAC2AAC7 D8C7EAF0EAFFFFFFFFEAD5C18B2BA66D1BD0B286FFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFEFDF7F1E7F8F7F5FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFF} ParentDoubleBuffered = False TabOrder = 10 OnClick = bbtnOpen2Click OnKeyDown = FormKeyDown end object sgSheet2: TStringGrid Left = 8 Top = 339 Width = 363 Height = 166 DefaultDrawing = False FixedCols = 0 FixedRows = 0 Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goColSizing] TabOrder = 11 OnClick = sgSheet1Click OnDrawCell = sgSheet1DrawCell OnKeyDown = FormKeyDown OnSelectCell = sgSheet2SelectCell end object sbTip: TStatusBar Left = 0 Top = 517 Width = 676 Height = 24 Color = clMoneyGreen Panels = < item Width = 150 end item Alignment = taCenter BiDiMode = bdLeftToRight ParentBiDiMode = False Text = ' CopyRight By ZongQingHong QQ:175624411' Width = 300 end item Alignment = taCenter Text = #25353' F1 '#26597#30475#20351#29992#24110#21161 Width = 50 end> SizeGrip = False end object odFile1: TOpenDialog Left = 176 Top = 152 end object odFile2: TOpenDialog Left = 200 Top = 384 end object Timer1: TTimer OnTimer = Timer1Timer Left = 528 Top = 56 end end
//格式设置单元文件
unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CheckLst; type TForm2 = class(TForm) chklist: TCheckListBox; cmbStyle: TComboBox; btnSet: TButton; Label1: TLabel; Label2: TLabel; procedure chklistClickCheck(Sender: TObject); procedure cmbStyleChange(Sender: TObject); procedure btnSetClick(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure chklistClick(Sender: TObject); private { Private declarations } public { Public declarations } //Constructor Create(AOwner: TComponent; sFileName: string); reintroduce; Constructor Create(AOwner: TComponent; AxlBook: Variant); reintroduce; end; var Form2: TForm2; implementation {$R *.dfm} uses ComObj; var arrCheck, arrStyle: array of Byte; //复选框状态和设置风格数据 tmpxlBook: Variant; rCount, cCount: Cardinal; procedure TForm2.btnSetClick(Sender: TObject); var i, j : integer; begin for I := 0 to chkList.Items.Count - 1 do begin //如果选中了列,且设置格式为文本 if (arrCheck[i] = 1) and (arrStyle[i] = 1) then begin for j := 2 to rCount do tmpxlBook.ActiveSheet.Cells[j, i+1].NumberFormatLocal := '000000'; end; end; ShowMessage('格式设置完成'); ModalResult := 1; end; procedure TForm2.chklistClick(Sender: TObject); begin cmbStyle.ItemIndex := arrStyle[chkList.ItemIndex]; end; procedure TForm2.chklistClickCheck(Sender: TObject); begin arrCheck[chkList.ItemIndex] := Byte(chkList.State[chkList.ItemIndex]); end; procedure TForm2.cmbStyleChange(Sender: TObject); begin if arrCheck[chkList.ItemIndex] = 1 then arrStyle[chkList.ItemIndex] := cmbStyle.ItemIndex; end; Constructor TForm2.Create(AOwner: TComponent; AxlBook: Variant); var i: integer; begin inherited Create(AOwner); tmpxlBook := AxlBook; cCount := tmpxlBook.ActiveSheet.UsedRange.Columns.Count; rCount := tmpxlBook.ActiveSheet.UsedRange.Rows.Count; //chkList.Clear; for I := 0 to cCount - 1 do begin chkList.Items.Add(tmpxlBook.ActiveSheet.Cells[2,I+1].Value); end; SetLength(arrCheck, cCount); SetLength(arrStyle, cCount); for i := Low(arrCheck) to High(arrCheck) do arrCheck[i] := Byte(chkList.State[i]); for i := Low(arrStyle) to High(arrStyle) do arrStyle[i] := 0; btnSet.Caption := '设置'; end; procedure TForm2.FormDestroy(Sender: TObject); begin //tmpxlBook.Close; tmpxlBook := UnAssigned; end; end.
//格式设置窗体文件
object Form2: TForm2 Left = 0 Top = 0 BorderIcons = [biSystemMenu, biMinimize] Caption = #26684#24335#35774#32622 ClientHeight = 243 ClientWidth = 346 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False Position = poMainFormCenter OnDestroy = FormDestroy PixelsPerInch = 96 TextHeight = 13 object Label1: TLabel Left = 8 Top = 11 Width = 117 Height = 13 Caption = #36873#25321#35201#35774#32622#30340#23383#27573#21015 Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [fsBold] ParentFont = False end object Label2: TLabel Left = 184 Top = 13 Width = 52 Height = 13 Caption = #36873#25321#26684#24335 Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [fsBold] ParentFont = False end object chklist: TCheckListBox Left = 8 Top = 32 Width = 161 Height = 203 OnClickCheck = chklistClickCheck ImeName = #20013#25991' ('#31616#20307') - '#19975#33021#20116#31508#20869#32622#36755#20837#27861 ItemHeight = 13 TabOrder = 0 OnClick = chklistClick end object cmbStyle: TComboBox Left = 184 Top = 32 Width = 145 Height = 21 ImeName = #20013#25991' ('#31616#20307') - '#19975#33021#20116#31508#20869#32622#36755#20837#27861 TabOrder = 1 Text = #40664#35748 OnChange = cmbStyleChange Items.Strings = ( #40664#35748 #25991#26412) end object btnSet: TButton Left = 216 Top = 184 Width = 89 Height = 51 Caption = 'btnSet' TabOrder = 2 OnClick = btnSetClick end end
//使用帮助单元文件
unit Unit3; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm3 = class(TForm) lbHelp: TListBox; procedure lbHelpKeyPress(Sender: TObject; var Key: Char); private { Private declarations } public { Public declarations } end; var Form3: TForm3; implementation {$R *.dfm} procedure TForm3.lbHelpKeyPress(Sender: TObject; var Key: Char); begin key := #0; end; end.
//使用帮助窗体文件
object Form3: TForm3
Left = 0
Top = 0
BorderIcons = [biSystemMenu]
Caption = #36719#20214#20351#29992#24110#21161
ClientHeight = 347
ClientWidth = 537
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
Position = poOwnerFormCenter
PixelsPerInch = 96
TextHeight = 13
object lbHelp: TListBox
Left = 0
Top = 0
Width = 537
Height = 340
BevelKind = bkFlat
Color = clSkyBlue
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack
Font.Height = -16
Font.Name = #21326#25991#26999#20307
Font.Style = []
ImeName = #20013#25991' ('#31616#20307') - '#19975#33021#20116#31508#20869#32622#36755#20837#27861
IntegralHeight = True
Items.Strings = (
' '#20449#24687#21270#26102#20195#65292#21150#20844#30005#23376#21270#24050#25104#20102#27599#20010#37096#38376#21333#20301#19981#21487#25110#32570#30340#32452#25104#37096#20998#65292
#20854#20013#20063#20813#19981#20102#35201#32463#24120#20351#29992#24494#36719#30340'EXCEL'#30005#23376#34920#26684#65292#36890#36807#23545#30005#23376#34920#26684#30340#28789
#27963#36816#29992#65292#26497#22823#26041#20415#21644#25552#39640#20102#21150#20844#25928#29575#12290
' '#22312#20855#20307#24037#20316#20013#65292#32463#24120#20250#30896#21040#20004#24352#30005#23376#34920#26684#30340#27604#23545#25110#21512#24182#38382#39064#12290#21363#20320#25152
#38656#35201#30340#20449#24687#24448#24448#26159#22312#20004#24352#19981#21516#30340#34920#26684#20013#12290#22914#26524#35201#25163#24037#25226#20004#24352#34920#26684#30340#20869#23481
#26681#25454#26576#20010#20851#38190#23383#27573#27604#23545#25110#21512#24182#22312#19968#36215#65292#23558#20250#28040#32791#24744#22823#37327#23453#36149#30340#26102#38388#21644#31934
#21147#12290#20026#27492#65292#20316#32773#19987#38376#32534#20889#20102#19968#20010#36890#29992#30340'EXCEL'#28165#20876#27604#23545#21512#24182#36719#20214#65292#26469#25552
#39640#25928#29575#65292#24182#25226#23427#20998#20139#32473#27599#19968#20301#38656#35201#30340#26379#21451#12290#22823#23478#22914#26524#22312#20351#29992#20013#21457#29616#38382#39064
#25110#26377#26356#22909#30340#24314#35758#21487#20197#32852#31995'QQ'#65306'175624411'#65292'EMAIL'#65306'zjdyzqh@163.com'#65292
#25105#23558#23613#21147#20104#20197#21560#32435#25913#21892#35813#36719#20214#31995#32479#12290
#25805#20316#20351#29992#35828#26126#65306
' '#27493#39588'1'#65306#22312#34920#19968#65292#36873#25321#35201#25805#20316#30340'EXCEL'#25991#20214#65292#21518#36873#25321#20854#20013#30340#19968#24352#30005#23376#34920
#20316#20026#34920#19968#12290
' '#27493#39588'2'#65306#22312#34920#20108#65292#36873#25321#35201#25805#20316#30340'EXCEL'#25991#20214#65292#21518#20877#36873#25321#30456#24212#30340#30005#23376#34920
#20316#20026#34920#20108#12290
' '#27493#39588'3'#65306#23436#25104'1'#12289'2'#27493#21518#65292#28857#8220#33719#21462#25968#25454#8221#25353#38062#65292#21462#24471#20004#24352#30005#23376#34920#30340#25968#25454#12290
' '#27493#39588'4'#65306#36827#34892#21442#25968#35774#32622#65288#24517#39035#35774#32622#65289
' '#65288'1'#65289#33509#35201#35774#32622#36755#20986#30005#23376#34920#30340#26631#39064#65292#21017#21246#36873#8220#26631#39064#8221#22797#36873#26694#65292#21363#21487#36755#20837#12290
' '#65288'2'#65289#33509#35201#36755#20986#23383#27573#26174#31034#26631#31614#65292#21017#21246#36873#8220#23383#27573#26631#31614#8221#22797#36873#26694#21518#65292#36873#20013
#8220#34920#19968' '#30340#23383#27573#21517#25152#22312#34892#65288#20219#24847#21015#65289#8221#36873#39033#65292#20877#28857#30005#23376#34920#19968#30340#23383#27573#25152#22312#34892#12290
' '#36873#20013#8220#34920#20108#30340#23383#27573#21517#25152#22312#34892#65288#20219#24847#21015#65289#8221#36873#39033#65292#20877#28857#34920#20108#30340#23383#27573#25152#22312#34892#12290
' '#35774#32622#23436#25104#21518#65292#19968#23450#35201#36873#20013#8220#35774#32622#23436#25104#8221#36873#39033#12290
' '#65288'3'#65289#21246#36873#8220#25968#25454#21306#22495#35774#32622#8221#22797#36873#26694#21518#65292#36873#20013#8220#34920#19968#30340#25968#25454#36215#22987#34892
#65288#20851#38190#21015#65289#8221' '#36873#39033#65292#20877#28857#20987#34920#19968#20013#20851#38190#21015#30340#31532#19968#34892#25968#25454#65307#20854#20182#36873#39033#35774#32622
#21516#12290#35774#32622#23436#25104#21518#65292#19968#23450#35201#36873#20013#8220#25968#25454#35774#32622#23436#25104#8221#36873#39033#12290
' '#27493#39588'5'#65306
' '#65288'1'#65289#28857#20987#8220#27604#23545#21512#24182#8221#25353#38062#65292#25353#25552#31034#36755#20837#25991#20214#21517#21518#20445#23384#12290
' '#65288'2'#65289#25552#31034#26159#21542#35201#35774#32622#29983#25104#30340#32467#26524#34920#30340#26684#24335#12290#65371#28857#20987#8220#26159#8221#65292#26174#31034#35774#32622
#31383#21475#12290' '#22914#26524#26377#23383#27573#26174#31034#21517#65292#20250#26174#31034#25152#26377#30340#23383#27573#65292#21487#26681#25454#38656#35201#35774#32622#21508#23383#27573
#30340#25991#26412#23646#24615#65288#20165#25552#20379#26368#24120#29992#30340#25991#26412#26684#24335#26174#31034#25968#23383#21151#33021#65289#65307#22914#26524#26080#23383#27573#26174
#31034#21517#65292#21017#26174#31034#31532#19968#34892#30340#21508#21015#25968#25454#20869#23481#65292#25805#20316#21516#21069#12290#65373)
ParentFont = False
TabOrder = 0
OnKeyPress = lbHelpKeyPress
end
end