delphi 的Excel问题搜集 from CSDN
来源:互联网 发布:美微网络电视免费频道 编辑:程序博客网 时间:2024/06/08 14:57
我现在想将查询出来的数据保存到设计好的Excel模板中,我在程序中打开了Excel模板,但是模板的数据明细部分需要动态插入一行数据,怎么处理?
Excel模板:
标题
字段1 字段2 字段3
(明细数据显示,格式已经设置好)
总计 SUM(字段3)
日期:
处理程序:
//这是我修改后的代码,已经可以了,和大家共勉
procedure TForm1.Button5Click(Sender: TObject);
var
WorkBook,Sheet,ExcelObj,Excel: OleVariant;
RecordCounts,iPos : Integer;
I,J: Integer;
begin
ExcelObj := CreateOleObject('Excel.sheet');
Excel := ExcelObj.Application;
Excel.DisplayAlerts := False;
WorkBook := Excel.WorkBooks.Open('D:/分配明细报表模板.xls');
WorkBook.Sheets[1].Name := '基金名称';
Sheet := WorkBook.Sheets[1];
Excel.ActiveWindow.WindowState := -4137;
//
Sheet.Cells[2,1].Value := '基金名称';
Sheet.Cells[3,1].Value := '日期'+FormatDateTime('YYYY.MM.DD',Date);
RecordCounts := qry1.RecordCount;
//首先在模板中循环复制数据明细部分
Sheet.Cells.Rows['5:5'].Select;
for iPos := 1 to RecordCounts do
begin
Sheet.Cells.Rows['5:5'].Copy;
Sheet.Cells.Rows['5:5'].Insert(-4121); //在第5行之前插入
Excel.CutCopyMode := False;
end;
//将数据输入到模板中
qry1.First;
J:= 5;
while not qry1.Eof do
begin
for i := 1 to qry1.FieldCount do
Sheet.cells[j,i] := Trim(qry1.Fields[i-1].AsString);
qry1.Next;
inc(j);
end;
qry1.First;
//保存
Excel.ActiveWorkBook.SaveAs('D:/Test.xls');
WorkBook.Close;
Excel.Quit;
end;
小弟有一个excel模板,想把数据库中的数据写到模板里再打印出来,但是我的代码总是自己在打开的模板里新增一个sheet(sheet4),在把数据写到新的sheet4中(那样我要模板有什么用),请问怎么解决啊??我要他写在sheet1中的啊!!
var
ExcelApplication1: TExcelApplication;
ExcelWorksheet1: TExcelWorksheet;
ExcelWorkbook1: TExcelWorkbook;
begin
ExcelApplication1 := TExcelApplication.Create(Application);
ExcelWorksheet1 := TExcelWorksheet.Create(Application);
ExcelWorkbook1 := TExcelWorkbook.Create(Application);
ExcelApplication1.Connect;
excelapplication1.Visible[0]:=true;
ExcelApplication1.Workbooks.Add('C:/许可证数据库/正本结构.xls', 0);
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _worksheet);
excelsheet.Cells.Item[2,7]:=trim(bhy.Text);//写数据
excelsheet.PrintOut;
================================
//顺便问一下,最后怎么不保存退出啊??
answer1:
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.ActiveSheet as _Worksheet);
用ActiveWorkbook, WorkbookSheet 試下
>>//顺便问一下,最后怎么不保存退出啊??
好象是設置
ExcelWorkbook1.Saved[0] := true;
就不會提示保存了, 你試了, 記不太清了
answer2:
uses ComObj;
var
workbook,sheet,excelObj,excel : OleVariant;
begin
excelObj := CreateOleObject('excel.sheet');
excel := excelObj.Application;
workbook := excel.workbooks.open( 'C:/许可证数据库/正本结构.xls' );//打开模板的位置
sheet := workbook.sheets[1];
Excel.ActiveWindow.WindowState := -4137;
excel.Cells[2,7]:=trim(bhy.Text);//写数据
………………
Excel.visible := true;
end;
这个是可行的,楼主不妨试一试
ExcelApplication1.Workbooks.Add('C:/许可证数据库/正本结构.xls', 0);这个语句可能是增加了一个sheet页面
- delphi 的Excel问题搜集 from CSDN
- 常见的问题搜集
- 搜集的delphi控件精彩集合
- 自己搜集编写的Delphi 通用函数
- 对网络的问题搜集
- Delphi通过VBA操作Excel的两个问题
- 问题搜集
- 问题搜集
- CSDN博客搜集整理
- excel导入搜集
- (Delphi)Excel的快速导入
- Delphi关于Excel的操作
- Delphi控制Excel的整理
- Delphi&Excel的所有使用方法
- Delphi操作Excel的技巧
- Delphi 对 Excel 的操作
- delphi 对excel 的操作
- Delphi控制Excel的方法
- 2005年是中日战略摊牌的一年[转]
- Python 是什么
- 在exe文件中嵌入文件并释放
- 开张第一帖,把以前大学时候做的sunny blog内容复制过来点吧!——美国人日常生活中常用的五星级句子
- 三十四个超级经典小故事(摘录,出处不明)
- delphi 的Excel问题搜集 from CSDN
- 美发完全手册
- DataGrid的自动编号
- 哈哈~刚看见一则另人兴奋的新闻--日本今年入常在程序上已经不可能!
- 普通的朋友与真正的朋友
- 《Test-Driven Development - A Practical Guide》读书笔记 - 第5章
- 国际经理人短缺,怎么办
- 写在前面拉!
- 南方的春天是令人伤感的季节!