Excel的问题--急!!!盼高手指点
try {
Variant MSExcel=CreateOleObject("Excel.Application");
MSExcel.OlePropertyGet("WorkBooks").OleProcedure("Add");
MSExcel.OlePropertySet("Visible",False);
}
catch(...) {
Application->MessageBox("没有安装Microsoft Excel办公软件!","系统信息",MB_OK+MB_ICONWARNING);
}
1、在有的机器上可以,有的不可以(提示:没有安装Microsoft Excel办公软件
2、当记录大于100时,速度特曼,且作后提示:没有安装Microsoft Excel办公软件
3、在统一计算机上,有时可以,有时不可,提示:没有安装Microsoft Excel办公软件
该任何解决此问题??盼高手指点
问题点数:50、回复次数:14Top
1 楼HEROIN(HEROIN)回复于 2001-08-22 13:26:59 得分 0
你的代码,不止这点吧?Top
2 楼ie4888(布袋)回复于 2001-08-22 13:51:32 得分 0
if (SaveDialog1->Execute()) {
try {
Variant MSExcel=CreateOleObject("Excel.Application");
MSExcel.OlePropertyGet("WorkBooks").OleProcedure("Add");
MSExcel.OlePropertySet("Visible",False);
// 写标题栏到Execl文件
int j = 1;
// if (TForm_Query->EditName->Text != "") {
MSExcel.OlePropertyGet("ActiveWorkBook").OlePropertyGet("ActiveSheet").OlePropertyGet("Cells",1,j).OlePropertySet("NumberFormat","@");
MSExcel.OlePropertyGet("ActiveWorkBook").OlePropertyGet("ActiveSheet").OlePropertyGet("Cells",1,j).OlePropertySet("Value","姓名");
j ++;
// }
if (Form_Query->EditDept->Text != "") {
MSExcel.OlePropertyGet("ActiveWorkBook").OlePropertyGet("ActiveSheet").OlePropertyGet("Cells",1,j).OlePropertySet("NumberFormat","@");
MSExcel.OlePropertyGet("ActiveWorkBook").OlePropertyGet("ActiveSheet").OlePropertyGet("Cells",1,j).OlePropertySet("Value","部门");
j ++;
}
.
.
Query_Ry->First();
// 写记录到Excel文件
for (int i=2;i<=Query_Ry->RecordCount+1;i++) {
int j = 1;
// if (Form_Query->EditName->Text != "") {
MSExcel.OlePropertyGet("ActiveWorkBook").OlePropertyGet("ActiveSheet").OlePropertyGet("Cells",i,j).OlePropertySet("NumberFormat","@");
MSExcel.OlePropertyGet("ActiveWorkBook").OlePropertyGet("ActiveSheet").OlePropertyGet("Cells",i,j).OlePropertySet("Value",Query_Ry->FieldByName("姓名")->AsString);
j ++;
// }
if (Form_Query->EditDept->Text != "") {
MSExcel.OlePropertyGet("ActiveWorkBook").OlePropertyGet("ActiveSheet").OlePropertyGet("Cells",i,j).OlePropertySet("NumberFormat","@");
MSExcel.OlePropertyGet("ActiveWorkBook").OlePropertyGet("ActiveSheet").OlePropertyGet("Cells",i,j).OlePropertySet("Value",Query_Ry->FieldByName("部门")->AsString);
j ++;
}
if (Form_Query->EditSex->Text != "") {
MSExcel.OlePropertyGet("ActiveWorkBook").OlePropertyGet("ActiveSheet").OlePropertyGet("Cells",i,j).OlePropertySet("NumberFormat","@");
MSExcel.OlePropertyGet("ActiveWorkBook").OlePropertyGet("ActiveSheet").OlePropertyGet("Cells",i,j).OlePropertySet("Value",Query_Ry->FieldByName("性别")->AsString);
j ++;
}
.
.
.
Query_Ry->Next();
}
MSExcel.OlePropertyGet("ActiveWorkBook").OleProcedure("SaveAs",SaveDialog1->FileName);
MSExcel.OlePropertyGet("ActiveWorkBook").OleProcedure("Close");
}
catch(...) {
Application->MessageBox("没有安装Microsoft Excel办公软件!","系统信息",MB_OK+MB_ICONWARNING);
}
} Top
3 楼jxhywdh(wdhwdh)回复于 2001-08-22 14:28:10 得分 10
其实 你的提示信息 没有安装Microsoft Excel办公软件!
有误 !!! 在执行任何有错的语句时 都提示该信息!!Top
4 楼whitelion(www.ccproj.com)回复于 2001-08-22 14:30:47 得分 0
upTop
5 楼ie4888(布袋)回复于 2001-08-22 14:58:16 得分 0
哪,为何记录少时可以输出到Excel文件,有时又不可以(即使只有一条记录)??在集成环境下,提示内存某处写错误。Top
6 楼ie4888(布袋)回复于 2001-08-22 15:34:00 得分 0
执行到MSExcel.OlePropertyGet("WorkBooks").OleProcedure("Add");
出错Top
7 楼sw0324(无聊ing)回复于 2001-08-22 15:47:24 得分 0
gzTop
8 楼hz_tiger(乳虎)回复于 2001-08-22 16:29:29 得分 0
upTop
9 楼wujinbao(abao)回复于 2001-08-22 16:32:51 得分 30
这种方法太慢了!!Top
10 楼ie4888(布袋)回复于 2001-08-22 16:51:52 得分 0
wujinbao(飞扬草) :如何能快???Top
11 楼zzzsssccc(今天正为明天后悔)回复于 2001-08-22 17:19:47 得分 10
这是一个内存的问题:你可以让excel在开始的时候显示,好像就行了
MSExcel.OlePropertySet("Visible",True);
你试试
Top
12 楼ie4888(布袋)回复于 2001-08-22 17:34:30 得分 0
MSExcel.OlePropertySet("Visible",True);不行的Top
13 楼ie4888(布袋)回复于 2001-08-22 17:37:50 得分 0
如果用TExcelApplication
Tep->ActiveWorkbook->Sheets[0]->Cells->set_Item(1,1,"Name")
提示 ———————— 处有错,好像时指针常量的错误,
上面的写法对吗?不对,应如何改写? Top
14 楼ie4888(布袋)回复于 2001-08-23 08:17:51 得分 0
谢谢各位,我昨夜看了一夜的BCB源代码和VBA的Help,总算搞懂了。Top




