CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  语言基础/算法/系统设计

各位csdn上的热心人,看看小弟的问题,让我爱上delphi!

楼主fengqing7(风清)2005-05-19 18:48:48 在 Delphi / 语言基础/算法/系统设计 提问

我是刚学习delphi的菜鸟,希望各位大虾能帮一下我,我的问题是:ActiveX下f1book的用法,怎样设置单元格的公式?虽然以前已经有人解答过此类问题,可是无奈我太菜还是不懂,   希望热心人给出简单的例子说明其用法,不胜感激! 问题点数:50、回复次数:7Top

1 楼jkx01whg(爱迪01)回复于 2005-05-20 02:31:05 得分 5

多找几本书来对比一下各自的说法,相信你会很明白Top

2 楼qrlvls( 空 气 )回复于 2005-05-20 03:04:55 得分 5

flbook是什么东东Top

3 楼fengqing7(风清)回复于 2005-05-20 07:47:34 得分 0

其实f1book的基本用法我通过在网上查资料是熟悉了,可是我还是对它的计算公式不会运用  
  FormulaRC的格式,怎样在公式中取得单元格的内容?kkkkkkkkkkkkkkkkkkkkkTop

4 楼hellolongbin(一个人(自从扩充话题改版,再也不去灌水乐园了))回复于 2005-05-20 08:31:58 得分 15

有一点是要明确的,就是他的单元格序号不是从0开始,而是从1开始的  
   
  Top

5 楼darkliu(钢铁工人甲)回复于 2005-05-22 09:29:50 得分 25

》》转贴  
   
  程序的目的是将通用的DBGrid中的内容显示到F1Book,这样便于数据的导出。输入数据(除非是批量输入)我还是使用DBGrid,但DBGrid不能很容易地实现块复制、打印、导出等功能。  
   
  首先创建一Form,   上面拖上   Database1   Query1   DataSource1   DBGrid   三个控件,随便连接上一数据库,我使用的是SQL   server,显示成功后,再在画面上放上F1Book1,再加上一个按钮,点击按钮后相应的代码如下:(功能是DBGrid中的内容再显示到F1Book1,代码的书写具有通用性)  
   
            AnsiString   tmpfd,tmpname;  
            int   i,j,totalnum,totalcol,kk;  
   
            totalnum=DBGrid1->DataSource->DataSet->RecordCount;       //   记录总数  
   
            kk=0;  
            for(i=0;i<DBGrid1->Columns->Count;i++)  
            {  
                    if(DBGrid1->Columns->Items[i]->Visible)  
                          kk=kk+1;  
            }  
            totalcol=kk;       //   表格的列数  
            if(totalnum>16384)  
            {  
                  Application->MessageBox("结果集太大,不能超过16384行!","提示",48);  
            }  
            if(totalnum==0)  
            {  
                  F1Book1->MaxCol=1;  
                  F1Book1->MaxRow=1;  
                  return;  
            }  
            if(totalcol>0)         F1Book1->MaxCol=totalcol;  
            if(totalnum>0)         F1Book1->MaxRow=totalnum;  
   
            F1Book1->ClearRange(1,1,F1Book1->MaxRow,F1Book1->MaxCol,1);  
   
            for(i=1;i<=totalcol;i++)  
            {  
                  F1Book1->ColText[i]=Char(i+64);  
            }  
   
  //   输出标题      
            kk=0;  
            for(i=0;i<DBGrid1->Columns->Count;i++)  
            {  
                    if(DBGrid1->Columns->Items[i]->Visible)  
                    {  
                          kk=kk+1;  
                          TColumn   *Column=DBGrid1->Columns->Items[i];  
                          TColumnTitle   *ColumnTitle   =Column->Title;  
                          AnsiString   tmpname=ColumnTitle->Caption;  
                          F1Book1->ColText[kk]=tmpname;  
                    }  
            }  
   
   
  //   以下输出内容  
            TDataSet   *theDS   =   DBGrid1->DataSource->DataSet;  
            theDS->DisableControls();  
            theDS->First();  
            for   (j=0;j<totalnum;j++)  
            {  
                kk=0;  
                for(i=0;i<DBGrid1->Columns->Count;i++)  
                {  
                    if(DBGrid1->Columns->Items[i]->Visible)  
                    {  
                        kk=kk+1;  
                        tmpfd=DBGrid1->Columns->Items[i]->FieldName;  
                        if(theDS->FieldByName(tmpfd)->DataType==ftInteger)  
                            F1Book1->TextRC[j+1][kk]=IntToStr(theDS->FieldByName(tmpfd)->AsInteger);  
                        else  
                            F1Book1->TextRC[j+1][kk]=theDS->FieldByName(tmpfd)->AsString;  
                    }  
                }  
                theDS->Next();  
            }  
            theDS->EnableControls();  
            theDS->First();  
   
  //设置效果  
        Screen->Cursor=crDefault;  
        F1Book1->ColHidden[1]=false;  
        F1Book1->RowHidden[1]=false;  
        F1Book1->SetFont('宋体',9,false,false,false,false,RGB(0,0,0),false,false);  
        F1Book1->SetColWidthAuto(1,1,F1Book1->MaxRow,F1Book1->MaxCol,true);  
        //最大宽度不超过6000  
        for(i=0;i<F1Book1->MaxCol;i++)   //file://将字段名写到工作薄的第一行  
        {  
                  if(F1Book1->ColWidth[i+1]>6000||F1Book1->ColWidth[i+1]<0)  
                  F1Book1->ColWidth[i+1]=6000;  
        }  
        F1Book1->HdrHeight=400;  
        F1Book1->SetRowHeight(1,F1Book1->MaxRow,300,true);  
  Top

6 楼fengqing7(风清)回复于 2005-05-23 10:40:16 得分 0

用f1book1.read();能不能读取excel文件,为什么我的程序读不了,老提示不能打开文件!!!  
  谁有用f1book1.read();打开excel的代码给小弟一看,感激。。。Top

7 楼fengqing7(风清)回复于 2005-05-23 10:49:03 得分 0

用f1book1.read();打开在f1book1上操作保存完成的excel没有问题,但是打开一个已经编辑好的excel就有问题,我的QQ:   11754722   .热心人赐教了Top

相关问题

  • 谢谢热心人
  • 如何查杀欢乐时光病毒?CSDN上好象贴过的,请热心人告诉一声
  • 寻找热心人帮忙!
  • 找热心人orient_yang
  • 送分给热心人
  • 热心人帮帮忙!~
  • 热心人请帮助!~
  • 给热心人加分,决不食言!
  • 有个问题,望热心人解答
  • 请热心人帮忙看看。

关键词

  • 代码
  • 内容
  • f1book
  • theds
  • kk
  • tmpfd
  • 热心人
  • totalcol
  • totalnum
  • maxcol

得分解答快速导航

  • 帖主:fengqing7
  • jkx01whg
  • qrlvls
  • hellolongbin
  • darkliu

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo