请教:我想把要查询的内容显示到EXCEL中,同时打开EXCEl,可以看到查询到的数据。
解决方案 »
- 如何把jpg格式图片转换成html代码 用打开html文件形式打开
- 窗体启动顺序问题!
- 版聚照片&强烈B4以ad为首的鸽子族
- 谁用过TClientDataSet的savetofile(loadfromfile)方法啊?????[悬赏100分]
- 一个简单的问题,如何读文件?
- 如休使一个form总是显示在最上层,而不被其他form或内容覆盖。
- 如何在tform的oncreate事件里实现canvas操作?
- 动态建立控件的释放问题
- 有没有人有Delphi7.0中,Rave Reports5.0详细使用教程吗
- 我用D7做了一个批量处理的程序,运行时 点最小化按钮的时候非常卡,怎么解决
- 大容量数据库对比问题
- 怎么编辑Listview选定的行的Subitem值?
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Sheets[1] as _WorkSheet);
ExcelWorksheet1.Cells.Item[1,1]:='aaa';
ExcelWorksheet1.Cells.Item[1,2]:='bbb';
ExcelWorkbook1.Save ;
ExcelWorkbook1.Close(false);
ExcelApplication1.Quit;
首先创建 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-斜( / )
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;
procedure TFormQuery.BtnSaveToExcelClick(Sender: TObject);
var
i, row, col : Integer;
begin
if Query1.FieldCount > 0 then
begin
Try
ExcelApplication1.Connect;
Except
ShowMessage(ExcelConError);
Abort;
end;
ExcelApplication1.Workbooks.Add(emptyParam,0);
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
ExcelWorkSheet1.ConnectTo(ExcelWorkBook1.Worksheets[1] as _Worksheet); for i:=0 to Query1.FieldCount-1 do
begin
ExcelWorkSheet1.Cells.Item[1,i+1] := Query1.Fields[i].FieldName;
end;
row := 2;
while not(Query1.Eof) do
begin
col := 1;
for i:=0 to Query1.FieldCount-1 do
begin
ExcelWorkSheet1.Cells.Item[row,col] := Query1.Fields[i].AsString;
col := col+1;
end;
Query1.Next;
row := row+1;
end; if SaveDialog1.Execute then
begin
ExcelWorkSheet1.SaveAs(SaveDialog1.FileName);
ShowMessage('成功导出数据.');
end; ExcelApplication1.Quit;
ExcelApplication1.Disconnect;
end
else
ShowMessage('没有数据.'); ExecExe('excel路径'); // 最后打开excel
end;
var
bExcelVisible:boolean;
i,j:integer;
begin
if application.MessageBox('启动Excel界面吗?','请回答',MB_YESNO + MB_DEFBUTTON2) <> IDNO then
bExcelVisible:=true
else bExcelVisible:=false;
Try
ExcelApplication1.Connect;
Except
MessageDlg('EXCEL可能未安装!',mtError, [mbOk], 0);
Abort;
End;
ExcelApplication1.Workbooks.Add(null,0);
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
//增加一个工作页
try
ExcelWorkBook1.WorkSheets.Add(null,ExcelWorkBook1.WorkSheets[ExcelWorkBook1.Worksheets.Count],null,null,0);
except
Application.MessageBox('创建Excel新页失败','错误警报',MB_OK);
exit;
end;
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet);
for i:=0 to stringgrid1.ColCount-1 do
for j:=0 to stringgrid1.RowCount-1 do
ExcelWorksheet1.Cells.Item[j+1,i+1].Value := stringgrid1.Cells[i,j];
if bExcelVisible then
ExcelApplication1.visible[0]:=true //显示EXCEL程序
else
begin
SaveDialog1.FileName:=StaticText1.Caption;
if SaveDialog1.Execute then
begin
try
ExcelWorkSheet1.SaveAs(SaveDialog1.FileName);
Application.MessageBox('保存成功','恭喜',MB_OK);
except
Application.MessageBox('保存失败','错误警报',MB_OK);
end;
end;
//此时要自己关闭Excel
ExcelApplication1.Disconnect;
ExcelApplication1.Quit;
end;
end;