社区
VCL组件使用和开发
帖子详情
如何在程序里将Excel表增加一行
KD007
2003-10-10 08:57:52
如题
...全文
841
3
打赏
收藏
如何在程序里将Excel表增加一行
如题
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
52vc
2003-10-10
打赏
举报
回复
以上是SQL 数据导入Excel 的程序部分代码
以下为定义方式
要在应用程序中控制Excel2000的运行,首先必须在编制自动化客户程序时使其头文件要包含Comobj.hpp和Utilcls.h。
即:#include<Comobj.hpp>
#include<Utilcls.h>
C++ Builder开发者把Excel自动化对象的功能包装在下面的四个Ole Object Class函数中,应用人员可以很方便地进行调用。
设置对象属性:Variant OlePropertySet(属性名,参数……);
获得对象属性:void OlePropertyGet(属性名,参数……);
调用对象方法:1) Variant OleFunction(函数名,参数……);
2) void OleProcedure(过程名,参数……);
C++ Builder中使用OLE控制Excel2000,必须掌握Excel2000的自动化对象及Microsoft Word Visual Basic帮助文件中的关于Excel的对象、方法和属性。对象是一个Excel元素,属性是对象的一个特性或操作的一个方面,方法是对象可以进行的动作。
1、Excel中常用的对象是:Application,Workbooks,Worksheets等。
(1) 创建应用对象:如:
Variant ex;
ex=Variant::CreateObject ("Excel.Application");
或者 ex=CreateOleObject ("Excel.Application");
(2) 创建工作簿对象:
Variant wb;
wb=ex.OlePropertyGet("ActiveWorkBook");
(3) 创建工作表对象:
Variant sheet;
sheet=wb.OlePropertyGet("ActiveSheet");
(4) 创建区域对象:
Variant range;
range=sheet.OlePropertyGet("Range","A1:A10");
2、常用的属性操作:
(1)新建EXCEL文件:
(a):新建系统模板的工作簿
ex.OlePropertyGet("workbooks").OleFunction("Add") //默认工作簿
ex.OlePropertyGet("workbooks").OleFunction("Add",1) //单工作表
ex.OlePropertyGet("workbooks").OleFunction("Add",2) //图表
ex.OlePropertyGet("workbooks").OleFunction("Add",3) //宏表
ex.OlePropertyGet("workbooks").OleFunction("Add",4) //国际通用宏表
ex.OlePropertyGet("workbooks").OleFunction("Add",5) //与默认的相同
ex.OlePropertyGet("workbooks").OleFunction("Add",6) //工作簿且只有一个表
(b):新建自己创建的模板的工作簿
ex.OlePropertyGet("workbooks").OleFunction("Add","C:\\WINDOWS\\Profiles\\test2\\Application Data\\Microsoft\\Templates\\result.xlt"); // 后面写上模板的完全路径,注意“\\”
(2)打开工作簿:
ex.OlePropertyGet("workbooks").OleFunction("open","路径名.xls")
(3)保存工作簿:
wb.OleFunction("Save"); //表格保存
wb..OleFunction("SaveAs","文件名"); //表格保存为,文件路径注意用“\\”
(4)退出EXCEL:
ex.OleFunction ("Quit");
(5)设置字体:
(a):设置单元格字体
sheet.OlePropertyGet("Cells",1,1).OlePropertyGet("Font").OlePropertySet("Name","隶书");
sheet.OlePropertyGet("Cells",2,3).OlePropertyGet("Font").OlePropertySet("size",28);
(b):设置所选区域字体
range.OlePropertyGet("Cells").OlePropertyGet("Font").OlePropertySet("size",28); range.OlePropertyGet("Cells").OlePropertyGet("Font").OlePropertySet("Color",
RGB(0,0,255));
其中参数的设置:
Font---Name : “隶书” //字体名称
----Size : 12 //字体大小
----Color : RGB(*,*,*) //颜色
-----Underline : true/false //下划线
-----Italic: true/false //斜体
(6)单元格的合并:
(a) range1=sheet.OlePropertyGet("Range", "A1:A2"); //A1和A2单元格合并
(b) AnsiString Str="A"+IntToStr(j)+":"+"C"+IntToStr(j);
range1=sheet.OlePropertyGet("Range",Str); //可以用变量控制单元格合并
range1.OleFunction("Merge" , false);
(7)赋值语句:
(a):指定单元格赋值
sheet.OlePropertyGet("Cells",3,6).OlePropertySet("Value",str);
sheet.OlePropertyGet("Cells",j,1).OlePropertySet("Value","共查到记录:"+IntToStr(j-6));
(b):所选区域单元格赋值
range.OlePropertyGet("Cells").OlePropertySet("Value",10);
(c):所选区域行赋值
range.OlePropertyGet("Rows",1).OlePropertySet("Value",1234);
(d):工作表列赋值
sheet.OlePropertyGet("Columns",1).OlePropertySet("Value",1234);
(8)取值语句:
AnsiString abc=sheet.OlePropertyGet("Cells",120,1).OlePropertyGet("Value");
(9)区域选择:
range.OlePropertyGet("Cells").OleFunction("Select");
(10)窗口属性:
(a)显示属性
ex.OlePropertySet("Windowstate",3); //最大化显示
参数 1---------xlNormal //正常显示
2---------xlMinimized //最小化显示
3---------xlMaximized //最大化显示
(b)状态栏属性
ex.OlePropertySet ("StatusBar","您好,请您稍等。正在查询!");
ex.OlePropertySet ("StatusBar", false); //还原成默认值
(c)标题属性:
ex.OlePropertySet("Caption","查询系统");
52vc
2003-10-10
打赏
举报
回复
CGauge1->MaxValue=FindsetResult->FindQuery->RecordCount;
Variant ex,newxls;
CGauge1->Progress=1;
int i,j=1;
try
{
ex=CreateOleObject("Excel.Application"); //启动Excel
}
catch(...)
{
ShowMessage("Microsoft Excel 2000 没有安装或文件已经被破坏!");
}
//ex.OlePropertySet("Visible",(Variant)false); //使Excel启动后可见
newxls=ex.OlePropertyGet("workbooks").OleFunction("Add");
//FindsetResult->FindQuery->Open();
FindsetResult->FindQuery->First();
AnsiString temp;
for(i=0;i<FindsetResult->FindQuery->FieldCount;i++)
{
temp=AnsiString(FindsetResult->DBGrid1->Columns->Items[i]->Title->Caption);
ex.OlePropertyGet("Cells",(Variant)1,(Variant)(i+1)).OlePropertySet("Value",temp);
}
while(!FindsetResult->FindQuery->Eof)
//将数据库中的记录依次写到工作薄中
{
CGauge1->Progress++;
if(FindsetResult->FindQuery->RecNo%50==1)
{
Toex->Refresh();
FindsetResult->Refresh();
}
j=j+1;
for(i=0;i<FindsetResult->FindQuery->FieldCount;i++)
{
temp=AnsiString(FindsetResult->FindQuery->Fields->Fields[i]->AsString);
ex.OlePropertyGet("Cells",(Variant)j,(Variant)(i+1)).OlePropertySet("Value",temp);
}
FindsetResult->FindQuery->Next();
}
ex.OlePropertySet("Visible",(Variant)true);
KD007
2003-10-10
打赏
举报
回复
我一定好好学习,还有个问题,我想设置一个统计函数怎么办,它算属性还是对象呢?
VC++(VS2010)读写
Excel
文件代码(附示例)
//获取工作
表
列名(第
一行
) CStringArray m_HeadName; m_HeadName.Add(_T("ID")); for (int i=1;i;i++) { CString m_content =
Excel
_example.GetText(1,i); m_HeadName.Add(m_content); } /...
python对
excel
添加新的
一行
_python 实现在
Excel
末尾
增加
新行
这篇文章主要介绍了关于python 实现在
Excel
末尾
增加
新行,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下实例如下所:import osimport xlrdimport xlwtfrom xlutils.copy import copydef
excel
write...
如何access
表
中加
一行
_
EXCEL
里
面制作好的
表
格,怎么在
表
格中加
一行
呢?
第二步:打开
EXCEL
以后,根据需要选择插入行的位置,比如需要在14行和第15行的位置插入
一行
,这时选中第十五行,右击,选择插入。第三步:上面的这一步还可以使用选项卡
里
面的插入项,点击插入下面的小箭头,选择...
在
excel
表
中插入
一行
(或一列)后vba代码如何自动修改?
插入
一行
后vba如何自动修改 如何在excle单元格中编写的vba语言当插入一列的时候公式也自动改变? 解决办法: 1、把单元格或单元区域选中。 2、然后给单元格命名。 3a、这时可以检验刚才的命名。再框选测试区域以...
Python-- 读取文件夹下所有
Excel
的最后
一行
写入新文件
实验背景: 让工作自动化,这是很多人的在纷繁复杂的工作环境中想要达到的,尤其是一些大量的重复性劳动。...读取文件夹下所有
Excel
表
格(CSV格式)的最后
一行
写入新文件。 实验步骤 代码
程序
1. 遍历文件夹 #...
VCL组件使用和开发
604
社区成员
13,460
社区内容
发帖
与我相关
我的任务
VCL组件使用和开发
C++ Builder VCL组件使用和开发
复制链接
扫一扫
分享
社区描述
C++ Builder VCL组件使用和开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章