请求在BCB中打开EXCEL

soft_zj 2008-02-14 03:22:30
我想打开指定路径下的一个EXCEL文件,要用程序代码控制,请达人指点下
...全文
235 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
li_fw 2008-02-15
  • 打赏
  • 举报
回复
AnsiString StrFileName=GetCurrentDir()+"\\Import.xls";
if(!FileExists(StrFileName))
{
MessageBox(Handle,"Excel表文件Import.xls不存在,无法打开!","信息提示",MB_ICONSTOP|MB_OK);
return;
}
Variant ExcelApp; //对象
Variant WorkBook1; //工作薄
Variant WorkSheet1; //工作表
try
{
ExcelApp=Variant::CreateObject("Excel.Application");
}
catch(...)
{
MessageBox(Handle,"无法启动Excel!","信息提示",MB_ICONSTOP|MB_OK);
return;
}
ExcelApp.OlePropertySet("Visible",true);//设置Excel为可见
//打开指定的Excel文件,文件中最好只设定一个Sheet
ExcelApp.OlePropertyGet("WorkBooks").OleProcedure("Open",StrFileName.c_str());
WorkBook1=ExcelApp.OlePropertyGet("ActiveWorkBook");
WorkSheet1=WorkBook1.OlePropertyGet("ActiveSheet");//获得当前默认的Sheet
if(MessageBox(Handle,"是否将当前的EXCEL文件导入程序?","信息提示",MB_YESNO)==IDNO)
return;
int nRow=WorkSheet1.OlePropertyGet("UsedRange").OlePropertyGet("Rows").OlePropertyGet("Count");
int nCol=WorkSheet1.OlePropertyGet("UsedRange").OlePropertyGet("Columns").OlePropertyGet("Count");
//从Excel表获取数据
for(int i=5;i<=nRow;i++)
{
for(int j=1;j<=nCol;j++)
{
AnsiString Str;
Str=WorkSheet1.OlePropertyGet("Cells",i,j).OlePropertyGet("Value");
this->StringGrid1->Cells[i-5][j-1]=Str;
}
}
WorkBook1.OleProcedure("Close");//关闭表格
ExcelApp.OleFunction("Quit");//退出Excel
ydlchina 2008-02-14
  • 打赏
  • 举报
回复

String FileName = "C:\\a.xls";
Variant ExcelApp,WorkBook1,WorkSheet1; // User declarations
//打开
void __fastcall TForm1::ButtonOpenClick(TObject *Sender)
{
try
{
ExcelApp=Variant::CreateObject("Excel.Application");
}
catch(...)
{
ShowMessage("Sorry!Excel cannot be launched");
return;
}
ExcelApp.OlePropertySet("Visible",true);
ExcelApp.OlePropertyGet("WorkBooks").OleProcedure("Open",FileName.c_str());
WorkBook1=ExcelApp.OlePropertyGet("ActiveWorkBook");
WorkSheet1=WorkBook1.OlePropertyGet("ActiveSheet");
}
//关闭
void __fastcall TForm1::ButtonCloseClick(TObject *Sender)
{
try
{
WorkBook1.OleProcedure("Save");
WorkBook1.OleProcedure("Close");
ExcelApp.OleFunction("Quit");
}
catch(...)
{
return;
}
}

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧