delphi下excel的操作
1.首先引用comobj、varints单元
2.声明xlApp,xlBook, xlSheet,picture: Variant;
3.基本操作
xlApp:=CreateOleObject('Excel.Application'); 有异常才没有安装Excel。
xlBook := xlApp.workBooks.Open(sd1.FileName);//打开已经存在的excel文件
//xlBook := xlApp.WorkBooks.Add;//增加工作表
xlBook.WorkSheets[1].Activate;//激活工作表
xlBook.WorkSheets[1].Cells[1,1] := '姓名';//单元格赋值
xlBook.save;//保存工作表
//xlBook.SaveAs(directory_filname);//另保存工作表
xlBook.close;
xlApp.Quit;
xlApp:= UnAssigned;
4.其他常用操作
xlApp.caption:='应用程序调用 Microsoft Excel';//
xlBook.worksheets[1].cells.NumberFormatLocal:='@';//设置工作表为文本方式
xlBook.worksheets[1].name:='sheet123';//工作表的名字
xlBook.worksheets[1].rows[1].font.size:=fontsize;//设置行字体大小
xlBook.worksheets[1].rows[1].font.bold:=true; //加粗
xlBook.worksheets[1].rows[1].interior.color:=clskyblue; //填充色
xlBook.worksheets[1].rows[1].rowheight:=35;//设置行高
xlBook.worksheets[1].rows[1].WrapText:=True;//设置自动换行
xlBook.worksheets[1].rows[1].HorizontalAlignment:=3;//设置一行的水平居中属性
xlBook.worksheets[1].columns[1].ColumnWidth:=15;//设置一列的宽度
xlBook.worksheets[1].usedrange.rows.count //最大行数
xlBook.WorkSheets[1].Cells[1,1] := '姓名';
//合并单元格
xlapp.range[xlBook.workSheets[1].cells[2,1],xlBook.workSheets[1].cells[2,3]].merge;
//冻结窗口 冻结所激活的单元格左上方区域
xlBook.worksheets[1].cells[10,10].activate;
xlapp.activeWindow.FreezePanes:=true;
//边框
xlBook.worksheets[1].range[xlBook.worksheets[1].cells[3,1],xlBook.worksheets[1].cells[5,1]].borders[m].linestyle:=1;//m的含义:1-左 2-右 3-顶 4-底 5-斜( \ ) 6-斜( / )
xlBook.worksheets[1].range[xlBook.worksheets[1].cells[loldRowIdx,1],xlBook.worksheets[1].cells[lrowIdx -1,lDeepth]].borders.linestyle:=1;//range内所有单元格边框显示
xlBook.worksheets[1].range[xlBook.worksheets[1].cells[loldRowIdx,1],xlBook.worksheets[1].cells[lrowIdx -1,lDeepth]].borders[11].linestyle:=-4142; //去除range内部子单元格边框11:横线,12竖线,-4142代表清除 (神奇的东西,网上很难搜到。。)
xlBook.worksheets[1].range[xlBook.worksheets[1].cells[loldRowIdx,1],xlBook.worksheets[1].cells[lrowIdx -1,lDeepth]].borders[12].linestyle:=-4142;
//插入图片操作,前提是图片必须存在电脑中插入后也不可以删除;
picture := xlBook.WorkSheets[1].Pictures.Insert(headFname); //插入图片
picture.left := xlBook.WorkSheets[1].Cells[idx,1].left + 1; //左
picture.top := xlBook.WorkSheets[1].Cells[idx,1].top + 1; //高
picture.width := xlBook.WorkSheets[1].Cells[idx,1].width - 2; //宽度
picture.height := xlBook.WorkSheets[1].Cells[idx,1].height - 2; //高度
picture := UnAssigned;
//判断文件是否已经打开
function isFileInUse(fName : string ) : boolean;
var
HFileRes : Tfilestream;
begin
Result := false;
if not FileExists(fName) then
exit;
try
hfileres:=Tfilestream.create(fname,fmShareExclusive);
result:=false;
except
result:=true;
end;
try
hfileres.Free;
except
end;
end;
delphi下excel的操作的更多相关文章
- Delphi对Excel保护操作
http://www.docin.com/p-378093577.html在金融系统的应用系统中经常需要与Excel交换数据或利用Excel制作报表,但在某些情况下,我们的业务系统要求生成的临时或最终 ...
- 小白学 Python(24):Excel 基础操作(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- Delphi的注册表操作
转帖:Delphi的注册表操作 2009-12-21 11:12:52 分类: Delphi的注册表操作 32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息. 一.创 ...
- VS2010 MFC对Excel的操作
这是帮别人做项目遇到的一个问题,的那个是纠结了老长时间,本以为是一件很轻松的事... 首先,这里采用了OLE来对Excel进行操作,网上其实有大把的例子,虽然都可以运行,但是并不能满足项目要求,其实我 ...
- DELPHI下的SOCK编程(转)
DELPHI下的SOCK编程 本文是写给公司新来的程序员的,算是一点培训的教材.本文不会涉及太多的编程细节,只是简单讲解在DELPHI下进行Winsock编程最好了解的知识. 题外话:我认为 ...
- DELPHI下API简述(1800个API)
DELPHI下API简述 http://zero.cnbct.org/show.asp?id=144 auxGetDevCaps API 获取附属设备容量 auxGetNumDevs API 返回附属 ...
- java导入导出excel常用操作小结及简单示例
POI中常用设置EXCEL的操作小结: 操作excel如下 HSSFWorkbook wb = new HSSFWorkbook(); //创建一个webbook,对应一个Excel文件 HSSFS ...
- Delphi下的RTTI函数大全
http://ljz9425.blog.163.com/blog/static/369148572008111635253858/ Delphi下的RTTI(下) 2008-12-16 15:52:5 ...
- Delphi中文本文件的操作
Delphi中文本文件的操作 相关知识内容: 在对文本文件进行任何处理之前,首先要打开此文本文件.声明变量:通过此变量可以来引用一个文本文件. 打开一个文件需要两步:首先是 AssignFile(), ...
随机推荐
- Objective-C(十七、KVC键值编码及实例说明)——iOS开发基础
结合之前的学习笔记以及參考<Objective-C编程全解(第三版)>,对Objective-C知识点进行梳理总结.知识点一直在变,仅仅是作为參考,以苹果官方文档为准~ 十七.键值编码 K ...
- Eclipse Mylyn成为顶级项目
http://www.infoq.com/cn/news/2010/09/eclipse-mylyn/ 作为应用程序的生命周期管理工具,Eclipse Mylyn项目已经被提升为顶级的Eclipse项 ...
- javascript原型的改动与重写(覆盖)区别
每一个JavaScript函数都有prototype属性(javascript对象没有这个属性),这个属性引用了一个对象,这个对象就是原型对象.javascript同意我们改动这个原型对象. 改动有2 ...
- POJ-3134-Power Calculus(迭代加深DFS)
Description Starting with x and repeatedly multiplying by x, we can compute x31 with thirty multipli ...
- Visual Studio - 引入动态库
以VS2013为例: 1.新建项目 2.选择"Win32控制台应用程序",点确定 勾选“控制台应用程序”和“空项目”选项,点击完成,然后新建一个C文件,在文件头上右键: 3.粘贴准 ...
- ipk CONTROL 目录的作用
CONTROL文件夹下的文件意义preinst - shell script,在ipk包开始安装前执行;postinst - shell script,在ipk包安装后执行; ...
- Vue 组件6内联模板
如果子组件有inline-template特性,组件将把它的内容当做模板,而不是把它当做分发内容,这样模板更灵活. <my-component inline-template> <d ...
- hdu 4272 LianLianKan 状态压缩
LianLianKan Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...
- 算法之动态规划(最长递增子序列——LIS)
最长递增子序列是动态规划中最经典的问题之一,我们从讨论这个问题开始,循序渐进的了解动态规划的相关知识要点. 在一个已知的序列 {a1, a 2,...an}中,取出若干数组成新的序列{ai1, ai ...
- java基础知识:自定义注解
转自 深入了解注解 要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法. 元注解的作用就是负责注解其他注解.J ...