社区
Delphi
帖子详情
请问怎样调用excel组件新建一个excel文件?
jxk
2003-01-10 11:43:12
如题
...全文
65
3
打赏
收藏
请问怎样调用excel组件新建一个excel文件?
如题
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
深宇
2003-01-10
打赏
举报
回复
楼上都已经全讲了。
Drate
2003-01-10
打赏
举报
回复
Delphi控制Excel2000
--------------------------------------------------------------------------------
一.使用动态创建的方法
首先创建 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;
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;
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.拷贝整个工作表:
ExcelApp.ActiveSheet.Used.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;
二.使用Delphi 控件方法
在Form中分别放入ExcelApplication, ExcelWorkbook和ExcelWorksheet。
1) 打开Excel
ExcelApplication1.Connect;
2) 显示当前窗口:
ExcelApplication1.Visible[0]:=True;
3) 更改 Excel 标题栏:
ExcelApplication1.Caption := '应用程序调用 Microsoft Excel';
4) 添加新工作簿:
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0));
5) 添加新工作表:
var Temp_Worksheet: _WorkSheet;
begin
Temp_Worksheet:=ExcelWorkbook1.
WorkSheets.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam,0) as _WorkSheet;
ExcelWorkSheet1.ConnectTo(Temp_WorkSheet);
End;
6) 打开已存在的工作簿:
ExcelApplication1.Workbooks.Open (c:\a.xls
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,0)
7) 设置第2个工作表为活动工作表:
ExcelApplication1.WorkSheets[2].Activate; 或
ExcelApplication1.WorksSheets[ 'Sheet2' ].Activate;
8) 给单元格赋值:
ExcelApplication1.Cells[1,4].Value := '第一行第四列';
9) 设置指定列的宽度(单位:字符个数),以第一列为例:
ExcelApplication1.ActiveSheet.Columns[1].ColumnsWidth := 5;
10) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:
ExcelApplication1.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米
11) 在第8行之前插入分页符:
ExcelApplication1.WorkSheets[1].Rows[8].PageBreak := 1;
12) 在第8列之前删除分页符:
ExcelApplication1.ActiveSheet.Columns[4].PageBreak := 0;
13) 指定边框线宽度:
ExcelApplication1.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3;
1-左 2-右 3-顶 4-底 5-斜( \ ) 6-斜( / )
14) 清除第一行第四列单元格公式:
ExcelApplication1.ActiveSheet.Cells[1,4].ClearContents;
15) 设置第一行字体属性:
ExcelApplication1.ActiveSheet.Rows[1].Font.Name := '隶书';
ExcelApplication1.ActiveSheet.Rows[1].Font.Color := clBlue;
ExcelApplication1.ActiveSheet.Rows[1].Font.Bold := True;
ExcelApplication1.ActiveSheet.Rows[1].Font.UnderLine := True;
16) 进行页面设置:
a.页眉:
ExcelApplication1.ActiveSheet.PageSetup.CenterHeader := '报表演示';
b.页脚:
ExcelApplication1.ActiveSheet.PageSetup.CenterFooter := '第&P页';
c.页眉到顶端边距2cm:
ExcelApplication1.ActiveSheet.PageSetup.HeaderMargin := 2/0.035;
d.页脚到底端边距3cm:
ExcelApplication1.ActiveSheet.PageSetup.HeaderMargin := 3/0.035;
e.顶边距2cm:
ExcelApplication1.ActiveSheet.PageSetup.TopMargin := 2/0.035;
f.底边距2cm:
ExcelApplication1.ActiveSheet.PageSetup.BottomMargin := 2/0.035;
g.左边距2cm:
ExcelApplication1.ActiveSheet.PageSetup.LeftMargin := 2/0.035;
h.右边距2cm:
ExcelApplication1.ActiveSheet.PageSetup.RightMargin := 2/0.035;
i.页面水平居中:
ExcelApplication1.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035;
j.页面垂直居中:
ExcelApplication1.ActiveSheet.PageSetup.CenterVertically := 2/0.035;
k.打印单元格网线:
ExcelApplication1.ActiveSheet.PageSetup.PrintGridLines := True;
17) 拷贝操作:
a.拷贝整个工作表:
ExcelApplication1.ActiveSheet.Used.Range.Copy;
b.拷贝指定区域:
ExcelApplication1.ActiveSheet.Range[ 'A1:E2' ].Copy;
c.从A1位置开始粘贴:
ExcelApplication1.ActiveSheet.Range.[ 'A1' ].PasteSpecial;
d.从文件尾部开始粘贴:
ExcelApplication1.ActiveSheet.Range.PasteSpecial;
18) 插入一行或一列:
a. ExcelApplication1.ActiveSheet.Rows[2].Insert;
b. ExcelApplication1.ActiveSheet.Columns[1].Insert;
19) 删除一行或一列:
a. ExcelApplication1.ActiveSheet.Rows[2].Delete;
b. ExcelApplication1.ActiveSheet.Columns[1].Delete;
20) 打印预览工作表:
ExcelApplication1.ActiveSheet.PrintPreview;
21) 打印输出工作表:
ExcelApplication1.ActiveSheet.PrintOut;
22) 工作表保存:
if not ExcelApplication1.ActiveWorkBook.Saved then
ExcelApplication1.ActiveSheet.PrintPreview;
23) 工作表另存为:
ExcelApplication1.SaveAs( 'C:\Excel\Demo1.xls' );
24) 放弃存盘:
ExcelApplication1.ActiveWorkBook.Saved := True;
25) 关闭工作簿:
ExcelApplication1.WorkBooks.Close;
26) 退出 Excel:
ExcelApplication1.Quit;
ExcelApplication1.Disconnect;
三.使用Delphi控制Excle二维图
在Form中分别放入ExcelApplication, ExcelWorkbook和ExcelWorksheet
var asheet1,achart, range:variant;
1)选择当第一个工作薄第一个工作表
asheet1:=ExcelApplication1.Workbooks[1].Worksheets[1];
2)增加一个二维图
achart:=asheet1.chartobjects.add(100,100,200,200);
3)选择二维图的形态
achart.chart.charttype:=4;
4)给二维图赋值
series:=achart.chart.seriescollection;
range:=sheet1!r2c3:r3c9;
series.add(range,true);
5)加上二维图的标题
achart.Chart.HasTitle:=True;
achart.Chart.ChartTitle.Characters.Text:=’ Excle二维图’
6)
gzyzljk
2003-01-10
打赏
举报
回复
首先创建 Excel 对象,使用ComObj:
var ExcelApp: Variant;
ExcelApp := CreateOleObject( 'Excel.Application' );
显示当前窗口:
ExcelApp.Visible := True;
更改 Excel 标题栏:
ExcelApp.Caption := '应用程序调用 Microsoft Excel';
添加新工作簿:
ExcelApp.WorkBooks.Add;
工作表保存:
if not ExcelApp.ActiveWorkBook.Saved then
ExcelApp.ActiveSheet.PrintPreview;
工作表另存为:
ExcelApp.SaveAs( 'C:\Excel\Demo1.xls' );
放弃存盘:
ExcelApp.ActiveWorkBook.Saved := True;
问之前先找找////
C#.NET 下使用COM
组件
操作
Excel
文件
示例,入门参考
/*该程序使用VS2005编写,示例可运行通过,包含了使用C#中COM
组件
操作
Excel
的基本方法,供该方面的初学者参考 *运行前需要对com
组件
Microsoft
Excel
12.0 Object Library添加引用 *运行前在桌面
新建
一个
文件
C:\Documents and Settings\Administrator\桌面\a.xlsx供使用 *注释掉的程序代码为其它用法 *作者为cw437
使用COM
组件
操控
Excel
文件
完整程序
按钮1-在内存中建立
一个
空白
Excel
文件
(界面中第
一个
按钮) 按钮2-打开
一个
Excel
文件
并做写入(界面中第三个按钮) 按钮3-在D:\
新建
一个
Excel
2007格式的空白
Excel
文件
(界面中第二个按钮)
Excel
职场办公一点通
Excel
职场办公一点通,办公小课堂精心制作开发。课程分别结合工作中的问题,分为十三个章节,135招
Excel
职场办公技巧,学习后一点就通。今天学明天用,提升职场办公效率!第1章:
Excel
高效基础操作(20招) 第2章:
Excel
查找与替换(6招) 第3章:
Excel
复制粘贴(15招) 第4章:
Excel
数据排序(10招) 第5章:
Excel
数据筛选(15招) 第6章:
Excel
数据验证/数据有效性(8招) 第7章:
Excel
数据分列(5招)第8章:
Excel
条件格式(10招)第9章:
Excel
定位GPS(8招)第10章:
Excel
超级表的魅力(5招)第11章:
Excel
自定义格式(14招)第12章:
Excel
数据打印设置(13招)第13章:
Excel
设置密码保护(6招
免费版.NET
Excel
组件
_Free Spire.XLS for .NET 8.3
Free Spire.XLS for .NET 是 Spire.XLS for .NET 的免费版本,无需购买即可用于个人或商业用途。使用 Free Spire.XLS for .NET,开发人员可以在 .NET 应用程序中快速对
Excel
文档进行各种编程操作,如根据模板创建新的
Excel
文档,编辑现有
Excel
文档以及对
Excel
文档进行转换等。Free Spire.XLS for .NET 是 Spire.XLS for .NET 的免费版本,无需购买即可用于个人或商业用途。使用 Free Spire.XLS for .NET,开发人员可以在 .NET 应用程序中快速对
Excel
文档进行各种编程操作,如根据模板创建新的
Excel
文档,编辑现有
Excel
文档以及对
Excel
文档进行转换等。 主要功能如下: 1.100% 独立的 .NET
组件
,无需 Microsoft Office Automation 2.强大的,高质量的
Excel
文件
转换功能。支持将
Excel
文档快速高效地转换为多种常见的格式,如 XML,Text,PDF 和图片等。 3.使用全面的工作簿设计器创建
Excel
报表。支持开发人员
新建
Excel
工作簿,从
文件
流或
文件
夹加载工作簿。还可以将工作薄保存到磁盘,
文件
流或 Web Response,同时提供了多种安全功能,包括
Excel
加密/解密,单元格隐藏/取消隐藏,工作表锁定/解锁。 4.自由操作工作表。允许开发人员使用 C#、VB.NET 或 ASP.NET 来创建、添加、删除、重命名、编辑和移动工作表,开发人员还可以在多个充满数据的工作表之间进行复制、调换和合并操作。这个专业的 .NET
Excel
类库嵌入了很多灵活显示工作表的选项,包括分页符,缩放设置,冻结窗口,页眉/页脚,打印
Excel
文件
,打印页面尺寸和打印区域等。 5.在运行时轻松操作单元格和
Excel
计算引擎。开发人员可以在运行时使用 C#、VB.NET 或 ASP.NET 轻松地操作
Excel
单元格,计算公式值。该高速、可扩展的
Excel
计算引擎与
Excel
97-2003/2007/2010 等兼容。同时该
组件
支持设置单元格样式,如单元格的合并/拆分,文字环绕/取消环绕,文本排列和旋转、边框、锁定/解除等。字体格式,如设置字体类型、大小、颜色、粗体、斜体、删除线、下划线等等。条件格式,文本搜索和替换,过滤和数据验证等操作都可以轻松的应用到单元格中。 6.图表、数据和其它元素。提供了一组丰富的图表,如饼状图,条形图,柱形图,折线图和雷达图等。此外,它支持使用 C#、VB.NET 或 ASP.NET 在数据库和
Excel
之间进行数据传输,支持超链接和模板,支持创建和获取数据透视表。
Excel
导入SQL数据库
SP操作
Excel
技术总结 目录 一、 环境配置 二、 ASP对
Excel
的基本操作 三、 ASP操作
Excel
生成数据表 四、 ASP操作
Excel
生成Chart图 五、 服务器端
Excel
文件
浏览、下载、删除方案 六、 附录 正文 一、 环境配置 服务器端的环境配置从参考资料上看,微软系列的配置应该都行,即: 1.Win9x+PWS+Office 2.Win2000 Professional+PWS+Office 3.Win2000 Server+IIS+Office 目前笔者测试成功的环境是后二者。Office的版本没有特殊要求,考虑到客户机配置的不确定性和下兼容特性,建议服务器端Office版本不要太高,以防止客户机下载后无法正确显示。 服务器端环境配置还有两个偶然的发现是: 1. 笔者开发机器上原来装有金山的WPS2002,结果
Excel
对象创建始终出现问题,卸载WPS2002后,错误消失。 2. 笔者开发ASP代码喜欢用FrontPage,结果发现如果FrontPage打开(服务器端),对象创建出现不稳定现象,时而成功时而不成功。扩展考察后发现,Office系列的软件如果在服务器端运行,则
Excel
对象的创建很难成功。 服务器端还必须要设置的一点是COM
组件
的操作权限。在命令行键入“DCOMCNFG”,则进入COM
组件
配置界面,选择Microsoft
Excel
后点击属性按钮,将三个单选项一律选择自定义,编辑中将Everyone加入所有权限。保存完毕后重新启动服务器。 客户端的环境配置没发现什么特别讲究的地方,只要装有Office和IE即可,版本通用的好象都可以。 二、 ASP对
Excel
的基本操作 1、 建立
Excel
对象 set obj
Excel
App = CreateObject("
Excel
.Application") obj
Excel
App.DisplayAlerts = false 不显示警告 obj
Excel
App.Application.Visible = false 不显示界面 2、
新建
Excel
文件
obj
Excel
App.WorkBooks.add set obj
Excel
Book = obj
Excel
App.ActiveWorkBook set obj
Excel
Sheets = obj
Excel
Book.Worksheets set obj
Excel
Sheet = obj
Excel
Book.Sheets(1) 3、 读取已有
Excel
文件
strAddr = Server.MapPath(".") obj
Excel
App.WorkBooks.Open(strAddr & "\Templet\Table.xls") set obj
Excel
Book = obj
Excel
App.ActiveWorkBook set obj
Excel
Sheets = obj
Excel
Book.Worksheets set obj
Excel
Sheet = obj
Excel
Book.Sheets(1) 4、 另存
Excel
文件
obj
Excel
Book.SaveAs strAddr & "\Temp\Table.xls" 5、 保存
Excel
文件
obj
Excel
Book.Save (笔者测试时保存成功,页面报错。) 6、 退出
Excel
操作 obj
Excel
App.Quit 一定要退出 set obj
Excel
App = Nothing 三、 ASP操作
Excel
生成数据表 1、 在
一个
范围内插入数据 obj
Excel
Sheet.Range("B3:k3").Value = Array("67", "87", "5", "9", "7", "45", "45", "54", "54", "10") 2、 在
一个
单元格内插入数据 obj
Excel
Sheet.Cells(3,1).Value="Internet Explorer" 3、 选中
一个
范围 4、 单元格左边画粗线条 5、 单元格右边画粗线条 6、 单元格上边画粗线条 7、 单元格下边画粗线条 8、 单元格设定背景色 9、 合并单元格 10、 插入行 11、 插入列 四、 ASP操作
Excel
生成Chart图 1、 创建Chart图 obj
Excel
App.Charts.Add 2、 设定Chart图种类 obj
Excel
App.ActiveChart.ChartType = 97 注:二维折线图,4;二维饼图,5;二维柱形图,51 3、 设定Chart图标题 obj
Excel
App.ActiveChart.HasTitle = True obj
Excel
App.ActiveChart.ChartTitle.Text = "A test Chart" 4、 通过表格数据设定图形 obj
Excel
App.ActiveChart.SetSourceData obj
Excel
Sheet.Range("A1:k5"),1 5、 直接设定图形数据(推荐) obj
Excel
App.ActiveChart.SeriesCollection.NewSeries obj
Excel
App.ActiveChart.SeriesCollection(1).Name = "=""333""" obj
Excel
App.ActiveChart.SeriesCollection(1).Values = "={1,4,5,6,2}" 6、 绑定Chart图 obj
Excel
App.ActiveChart.Location 1 7、 显示数据表 obj
Excel
App.ActiveChart.HasDataTable = True 8、 显示图例 obj
Excel
App.ActiveChart.DataTable.ShowLegendKey = True 五、 服务器端
Excel
文件
浏览、下载、删除方案 浏览的解决方法很多,“Location.href=”,“Navigate”,“Response.Redirect”都可以实现,建议用客户端的方法,原因是给服务器更多的时间生成
Excel
文件
。 下载的实现要麻烦一些。用网上现成的服务器端下载
组件
或自己定制开发
一个
组件
是比较好的方案。另外一种方法是在客户端操作
Excel
组件
,由客户端操作服务器端
Excel
文件
另存至客户端。这种方法要求客户端开放不安全ActiveX控件的操作权限,考虑到通知每个客户将服务器设置为可信站点的麻烦程度建议还是用第
一个
方法比较省事。 删除方案由三部分组成: A: 同一用户生成的
Excel
文件
用同
一个
文件
名,
文件
名可用用户ID号或SessionID号等可确信不重复字符串组成。这样新
文件
生成时自动覆盖上一
文件
。 B: 在Global.asa
文件
中设置Session_onEnd事件激发时,删除这个用户的
Excel
暂存
文件
。 C: 在Global.asa
文件
中设置Application_onStart事件激发时,删除暂存目录下的所有
文件
。 注:建议目录结构 \Src 代码目录 \Templet 模板目录 \Temp 暂存目录 六、 附录 出错时
Excel
出现的死进程出现是一件很头疼的事情。在每个
文件
前加上“On Error Resume Next”将有助于改善这种情况,因为它会不管
文件
是否产生错误都坚持执行到“Application.Quit”,保证每次程序执行完不留下死进程。 补充两点: 1、其他
Excel
具体操作可以通过录制宏来解决。 2、服务器端打开SQL企业管理器也会产生问题。 New Document
Delphi
5,392
社区成员
262,731
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章