各位csdn上的热心人,看看小弟的问题,让我爱上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




