delphi 把数据导入Excel中,高手伸伸手
delphi 把数据导入excel中,高手伸伸手
1.设列宽语句:excelworksheetdn.columns[1].columnswidth:= 8.5;
时出错:
[error] datanetctangimpl.pas(2453): class does not have a default property。
2.单元格怎么 居中,
3.怎么实现对齐方式为 自动分行?
4.合并单元格。
推荐阅读
1、xlapp.columns("c:c").columnwidth = 10.75
2、xlapp.range("e1").select
xlapp.selection.horizontalalignment := xlcenter
3、 xlapp.range("d5").select
xlapp.selection.horizontalalignment = xlright
xlapp.selection.verticalalignment = xlcenter
xlapp.selection.wraptext = true //自动换行
4、xlapp.range("e8:e9").select;
xlapp.selection.mergecells = true;
sheet.cells[1,5].horizontalalignment:=5;
以上是当前单元格居中。左对齐是3,右是4
同意 ljmanage(过客)
excel帮助中有vba的详细文档,可以参考
在excel使用宏,察看宏源码,不就知道了
帮你转一下:
全面控制 excel
首先创建 excel 对象,使用comobj:
var excelid: variant;
excelid := createoleobject( excel.application );
1) 显示当前窗口:
excelid.visible := true;
2) 更改 excel 标题栏:
excelid.caption := 应用程序调用 microsoft excel;
3) 添加新工作簿:
excelid.workbooks.add;
4) 打开已存在的工作簿:
excelid.workbooks.open( c:\excel\demo.xls );
5) 设置第2个工作表为活动工作表:
excelid.worksheets[2].activate;
或 excelid.worksheets[ sheet2 ].activate;
6) 给单元格赋值:
excelid.cells[1,4].value := 第一行第四列;
7) 设置指定列的宽度,以第一列为例:
excelid.activesheet.columns[1].columnswidth := 5;
8) 设置指定行的高度,以第二行为例:
excelid.activesheet.rows[2].rowheight := 1/0.035; // 1厘米
9) 在第8行之前插入分页符:
excelid.worksheets[1].rows[8].pagebreak := 1;
10) 在第8列之前删除分页符:
excelid.activesheet.columns[4].pagebreak := 0;
11) 指定边框线宽度:
excelid.activesheet.range[ b3:d4 ].borders[2].weight := 3;
1-左 2-右 3-顶 4-底 5-斜( \ ) 6-斜( / )
12) 清除第一行第四列单元格公式:
excelid.activesheet.cells[1,4].clearcontents;
13) 设置第一行字体属性:
excelid.activesheet.rows[1].font.name := 隶书;
excelid.activesheet.rows[1].font.color := clblue;
excelid.activesheet.rows[1].font.bold := true;
excelid.activesheet.rows[1].font.underline := true;
14) 进行页面设置:
a.页眉:
excelid.activesheet.pagesetup.centerheader := 报表演示;
b.页脚:
excelid.activesheet.pagesetup.centerfooter := 第&p页;
c.页眉到顶端边距2cm:
excelid.activesheet.pagesetup.headermargin := 2/0.035;
d.页脚到底端边距3cm:
excelid.activesheet.pagesetup.headermargin := 3/0.035;
e.顶边距2cm:
excelid.activesheet.pagesetup.margin := 2/0.035;
f.底边距2cm:
excelid.activesheet.pagesetup.bottommargin := 2/0.035;
g.左边距2cm:
excelid.activesheet.pagesetup.leftmargin := 2/0.035;
h.右边距2cm:
excelid.activesheet.pagesetup.rightmargin := 2/0.035;
i.页面水平居中:
excelid.activesheet.pagesetup.centerhorizontally := 2/0.035;
j.页面垂直居中:
excelid.activesheet.pagesetup.centervertically := 2/0.035;
k.打印单元格网线:
excelid.activesheet.pagesetup.printgridlines := true;
15) 拷贝操作:
a.拷贝整个工作表:
excelid.activesheet.used.range.copy;
b.拷贝指定区域:
excelid.activesheet.range[ a1:e2 ].copy;
c.从a1位置开始粘贴:
excelid.activesheet.range.[ a1 ].pastespecial;
d.从文件尾部开始粘贴:
excelid.activesheet.range.pastespecial;
16) 插入一行或一列:
a. excelid.activesheet.rows[2].insert;
b. excelid.activesheet.columns[1].insert;
17) 删除一行或一列:
a. excelid.activesheet.rows[2].delete;
b. excelid.activesheet.columns[1].delete;
18) 打印预览工作表:
excelid.activesheet.printpreview;
19) 打印输出工作表:
excelid.activesheet.printout;
20) 工作表保存:
if not excelid.activeworkbook.saved then
excelid.activesheet.printpreview;
21) 工作表另存为:
excelid.saveas( c:\excel\demo1.xls );
22) 放弃存盘:
excelid.activeworkbook.saved := true;
23) 关闭工作簿:
excelid.workbooks.close;
24) 退出 excel:
excelid.quit;
如何在delphi中操作excel
在数据库应用软件的开发过程中,经常需要把数据转换成excel文件,让用户作进一步的数据处理。而delphi是开发数据库应用系统的常用工具,那么,如何在delphi中操作excel呢?
我们知道,在microsoft office软件中有一种内嵌的编程语言vba,它是一种宏语言,利用它,你可以编写出功能强大的代码,如打开文件、修改数据、保存数据和设置字体等。另一方
面,microsoft office软件中的宏能以vba代码的形式记录下你的操作过程。因此借助宏操作,可以很轻松地实现某一功能,并把这些代码稍作修改嵌入到你的软件中。但是vba也存在
一个缺点,它必须有microsoft office作平台,在哪里编写,必须在哪里执行。例如在excel下编写的一段vba代码,则它只有在excel下才能运行。因此,笔者的方法就是把vba代码嵌入
到delphi中,从而实现用delphi操作excel。
下面,我们以delphi程序为例,说明这种调用方法:
unit excel;
interface
uses
windows,messages,sysutils,classes,graphics,controls,forms,dialogs,stdctrls,comobj;
//comobj是操作ole对象的函数集
type tform1 =class(tform)
button1: tbutton;
procedure button1click(sender: tobject);
private
{ private declarations }
public
{ public declarations }
end;
var
form1: tform1;
implementation
{$r *.dfm}
procedure tform1.button1click(sender: tobject);
var
eclapp,workbook:variant;
//声明为ole automation 对象
xlsfilename:string;begin
xlsfilename:=ex.xls;
try
//创建ole对象excel application与 workbook
eclapp:=createoleobject(excel.application);
workbook:=createoleobject(excel.sheet);
except
showmessage(您的机器里未安装microsoft excel。);
exit;
end;
try
showmessage(下面演示:新建一个xls文件,并写入数据,最后关闭它。);
workbook:=eclapp.workbooks.add;
eclapp.cells(1 , 1):=字符型;
eclapp.cells(2 , 1):=excel文件;
eclapp.cells(1 , 2):=money型;
eclapp.cells(2 , 2):=10.01;
eclapp.cells(1 , 3):=日期型;eclapp.cells(2 , 3):=date;
workbook.saveas(xlsfilename);
workbook.close;
showmessage(下面演示:打开刚创建的xls文件,并修改其中的内容,然后,由用户决定是否保存。);
workbook:=eclapp.workbooks.open(xlsfilename);
eclapp.cells(2 , 1):=excel文件类型;
if messagedlg(xlsfilename+文件已被修改,是否保存?,mtconfirmation, [mbyes, mbno], 0) = mryes then
workbook.save
else
workbook.saved := true; //放弃修改
workbook.close;
eclapp.quit;
//退出excel application
//释放variant变量
eclapp:=unassigned;
except
showmessage(不能正确操作excel文件。可能是该文件已被其他程序打开,或系统错误。);
workbook.close;
eclapp.quit;
//释放variant变量
eclapp:=unassigned;
end;
end;
end.
经过上述操作过程后,我们就可以很放心地将数据库中的数据转换成excel文件了
sheet.columns[2].horizontalalignment:=4;右
sheet.cells[1,1].horizontalalignment:=3;居中
5好象是填充
测试过,可以使用
楼上的,有点敬业精神好不好,看请题目再回答第n次。你的程序里只有导入,啥都没设置
sheet.range[sheet.cells[1, 1], sheet.cells[1, col - 1]].merge;
将第1行第1列到第1行第col-1列,合并成一个单元格


讨论区