社区
C++ Builder
帖子详情
BCB中如何设置保存的Excel文件名,最好是保存和另存为都有!
leotam
2003-01-17 10:48:44
有很多讲述打开Excel文件的帖子,但就没有说明如何更改保存名的帖子!不要默认的Book1。xls的保存名!大虾帮忙!测试通过马上给分!
...全文
136
6
打赏
收藏
BCB中如何设置保存的Excel文件名,最好是保存和另存为都有!
有很多讲述打开Excel文件的帖子,但就没有说明如何更改保存名的帖子!不要默认的Book1。xls的保存名!大虾帮忙!测试通过马上给分!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Behard
2003-03-17
打赏
举报
回复
/*******************************************************************************
* Function Name : SaveExcel
* Description : 保存工作表
* Return : -
* Parameters : -
* Author : Behard
* Date : 2002/09/02
*******************************************************************************/
extern "C" void __declspec(dllexport) __stdcall SaveExcel(void)
{
//为了不影响别的路径,TSaveDialog 会改变当前路径
AnsiString asSaveCurrentPath = GetCurrentDir() ;
TSaveDialog *sdSaveDialog = new TSaveDialog(NULL);
sdSaveDialog->Filter = "Microsoft Excel 工作表 (*.xls)|*.XLS" ;
sdSaveDialog->FileName = FormatDateTime("yyyymm", Now())+ ".xls" ;
try
{
//不保存工作表
MSExcel.OlePropertyGet("ActiveWorkBook").OlePropertySet("Saved",true);
if( sdSaveDialog->Execute() )
{
//应该加上询问是否覆盖保存
if ( FileExists(sdSaveDialog->FileName) ) //MessageBox
{
//int iReSave =
if ( Application->MessageBox("文件已经存在,是否覆盖保存 ?", "操作提示", MB_YESNO) == IDYES )
{
DeleteFile( sdSaveDialog->FileName );
MSExcel.OlePropertyGet("ActiveWorkBook").OleProcedure("SaveAs",sdSaveDialog->FileName);
}
}
else MSExcel.OlePropertyGet("ActiveWorkBook").OleProcedure("SaveAs",sdSaveDialog->FileName);
//ShowMessage("Sucess!");
}
//不保存工作表
//else MSExcel.OlePropertyGet("ActiveWorkBook").OlePropertySet("Saved",true);
}
__finally { delete sdSaveDialog; SetCurrentDir(asSaveCurrentPath); }
//MSExcel.OlePropertyGet("ActiveWorkBook").OleProcedure("SaveAs","D:\\1.xls");
MSExcel.OlePropertyGet("ActiveWorkBook").OleProcedure("Close");
MSExcel.OleProcedure("Quit");
//ShowMessage("SaveExcel!") ;
}
Behard
2003-03-17
打赏
举报
回复
一般使用 SaveAs 过程就可以了
不过最好自己处理覆盖原来文件
否则会出来一个很不好的提示
chongyiren
2003-03-17
打赏
举报
回复
study
wlei007
2003-03-16
打赏
举报
回复
其实很简单的,看看office的帮助了,我用的是XP所以帮助是vbaxl10.chm。
用cbc的Variant类的Oleprocedure("SaveAS",想存的文件名)...
下面是我的code
AnsiString SaveFile2;
SaveFile2 = "d:\\报表\\";
SaveFile2 += ReportDate; //ReportDate为存放报表日期的AnsiString变量
SaveFile2 += "政策问答统计汇总表.xls";
if(!FileExists(Template2))//Template2为要写的Excel表模板
{
Application->MessageBox("报表模板不存在!","错误",
MB_ICONSTOP|MB_OK);
return ;
}
try
{
Ex = Variant::CreateObject("Excel.Application");
}
catch(...)
{
Application->MessageBox("无法启动Excel,请检查系统\
是否安装了Excel!","错误",MB_ICONSTOP|MB_OK);
return;
}
try
{
Ex.OlePropertySet("Visible",false);
Ex.OlePropertyGet("WorkBooks").OleProcedure ("Open",Template2.c_str());
Wb = Ex.OlePropertyGet("ActiveWorkBook");
Sheet = Wb.OlePropertyGet("ActiveSheet");
//开始写表
//写Time标题
Sheet.OlePropertyGet("Cells",3,2).OlePropertySet(\
"Value",(TVariant)ReportDate.c_str());
Sheet.OlePropertyGet("Cells",16,9).OlePropertySet(\
"Value",(TVariant)PutDate.c_str());
for(int i=5,j=0; i<13 && j<QSum.RecordCount; i++,j++)
{
if(i<=12 && j<8)
{
Sheet.OlePropertyGet("Cells",i,3).OlePropertySet(\
"Value",(TVariant)DBInfo2[j].TargetName.c_str());
Sheet.OlePropertyGet("Cells",i,4).OlePropertySet(\
"Value",(TVariant)(IntToStr(DBInfo2[j].SelNum)).c_str());
Sheet.OlePropertyGet("Cells",i,5).OlePropertySet(\
"Value",(TVariant)(IntToStr(DBInfo2[j].prc)).c_str());
if( i==12 )
{
i = 4;
}
}
else
{
Sheet.OlePropertyGet("Cells",i,8).OlePropertySet(\
"Value",(TVariant)DBInfo2[j].TargetName.c_str());
Sheet.OlePropertyGet("Cells",i,9).OlePropertySet(\
"Value",(TVariant)(IntToStr(DBInfo2[j].SelNum)).c_str());
Sheet.OlePropertyGet("Cells",i,10).OlePropertySet(\
"Value",(TVariant)(IntToStr(DBInfo2[j].prc)).c_str());
}
}
//注意下面就是你们要的了SaveAs
Wb.OleProcedure("SaveAs",(TVariant)SaveFile2.c_str());
Wb.OleProcedure("Close");
Ex.OleFunction("Quit");
}
catch(...)
{
Application->MessageBox("报表生成失败!","错误",
MB_ICONSTOP|MB_OK);
return false;
}
zhendema2325
2003-03-15
打赏
举报
回复
我也想问的阿
halibut
2003-01-19
打赏
举报
回复
UP!
BCB
& Delphi访问
Excel
文件编程那些事儿
较详细地介绍了
BCB
或Delphi编程访问
Excel
操作
Excel
文件的OLE概念和方法,并通过完整且可执行的实例和较多的程序片段进行了说明。还给出了包括微软官方Office文档在内的一般性的问题解决方法。阅读本文后,
Excel
文件...
BCB
控制
Excel
类[转]
* Comment:
Excel
巨摸 ********************************************************************** */ #include < vcl.h > #include " T
Excel
.h " #include " vcl\utilcls.h " /**/ /**/ /**/ ////////...
99个
Excel
VBA经典函数源码大全
99个
Excel
VBA经典函数源码大全
将数据库
中
的内容导入到
excel
发表于:2003-08-05 11:53:59 ...请问用
BCB
怎么实现SQL2000的数据导出到
Excel
里面呢?还有类似将
Excel
里的数据导入到数据库
中
呢? 对我有用[0]丢个板砖[0]
[工作] 批量更改照片名称并建立同名文件夹
打开照片片所在的文件夹,全部选
中
文件夹里的图片,一直按住Shift键,在刚才选
中
的这些照片上单击右键,在弹出的窗口
中
选择“复制为路径”,打开
excel
表,右键单击,粘贴到表
中
批量一次性把“C:\Users\pc\...
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章