首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

htm文件转换为excel的有关问题

2012-02-08 
htm文件转换为excel的问题 - C++ Builder / Windows SDK/API各位老大,我想将操作的结果保存到excel中去,但

htm文件转换为excel的问题 - C++ Builder / Windows SDK/API
各位老大,我想将操作的结果保存到excel中去,但要对excel进行格式设置,使其整体美观。我的操作如下:
先自己写好excel的模板,然后将其另存为htm文件,然后再程序中加载该htm文件并对其进行操作,我可以实现添加、删除功能,但这只是针对Htm文件而言的。此时我想再把它给转回到Excel中去并保存对该文件的操作,该如何进行呢?

[解决办法]
如果你的文件就是excel的格式的。那应该没有问题。

你是不会用ole操作excel???还是什么。我语文实在不好。真的看不懂你的意思
[解决办法]
用OLE操作Excel, 这个比较容易. 我也是没有看懂, 你目前遇到的主要问题是什么?
[解决办法]
如果你的html里面還是表格的話,可以這樣。
WideString W;
TMemoryStream *ms=new TMemoryStream();
try {
char S[]={0xFF,0xFE};

ms->Write(S,sizeof(S));
W = Memo1->Text;//Memo1里面存的是你html文件的源代碼
ms->Write(W.c_bstr(),W.Length() * sizeof(WideChar));
ms->Position=0;
ms->SaveToFile("c:\abc.xls");
}
__finally {
delete ms;
}
[解决办法]

C/C++ code
void __fastcall TMain::BitBtn10Click(TObject *Sender){       int vehno,axlenum,Totalweight,grnum,limitweight,overld,speed;     int axleweigh[8];     AnsiString ss,stemp,ts;     String  autotype,handtype,Dtime,vehid;     char* data_buf;     int i,j;     int overaxle;     int t[4];     String axletype[4];     //EditQClear();     axletype[0]="①";     axletype[1]="②";     axletype[2]="⑤";     axletype[3]="⑦";   //---把数据导出到Excel表中---   try   {    BitBtn10->Enabled=false;    String filename1,filename2,strXlsFile;    int pagenum;    filename1="";    //SaveD->FileEditStyle="";    if(SaveD->Execute())    {     filename1=SaveD->FileName;//+".xls";    }    else    {     filename1="d:\\daw50报表.xls";    }   if(filename1!="");   {        if(!DBGrid4->DataSource->DataSet->Active) // 数据集没有打开就返回        return;    // 表格的行数    DBGrid4->DataSource->DataSet->Last();    int nRowCount(DBGrid4->DataSource->DataSet->RecordCount + 1);          nRowCount = nRowCount < 2? 2: nRowCount;    // 表格的列数    int nColCount(39);      nColCount = nColCount < 1? 1: nColCount;    int pnum=65530;// 530    int  filenum= nRowCount/pnum+1;   DBGrid4->DataSource->DataSet->First();   for(int hlpnum=1;hlpnum<=filenum;hlpnum++)   {    if(hlpnum<filenum)      pagenum=pnum;    else    pagenum=nRowCount-(hlpnum-1)*pnum-1;    //-------------------------------------    filename2=filename1+"0"+IntToStr(hlpnum);     strXlsFile=filename2;     //==============        FILE * ofp;        TStringList *HTMList;        int FieldType[10]={0,0,0,0,2,0,0,0};        bool ret;        char *sFileName;        char FileName[200];        sFileName=filename2.c_str();//"./mytest.csv";        sprintf(FileName,"%s.xls\0", sFileName);        ofp=fopen(FileName,"a+");        if(ofp==NULL){                 ShowMessage("文件无法创建!!");                 return;                 } fputs("<table border='1' style='border-style: solid'>\n", ofp); fflush(ofp); fputs("<tr height=24 >\n", ofp); //ss="路段名称"; // fprintf(ofp, "<td height=24 >%s</td>\n", ss.c_str()); ss="路段名称:"; fprintf(ofp, "<td height=24 >%s</td>\n", ss.c_str()); fputs("</tr>\n", ofp); fflush(ofp); fputs("<tr height=24 >\n", ofp);    for(int j=0; j<10; j++)    {        // 标题行的行高        //String ss;        switch(j)        {          case 0:              ss="编号";                break;          case 1:             ss="时间";                break;          case 2:              ss="车牌号码";                 break;          case 3:              ss="总重";                 break;          case 4:              ss="限重";                 break;          case 5:              ss="超重";                break;          case 6:              ss="速度";                break;          case 7:              ss="人工车型";                break;          case 8:             ss="自动车型";                 break;          case 9:               ss="轴数";                 break;          case 10:             ss="行使里程";                 break;          case 11:              ss="实际收费";          break;        }        fprintf(ofp, "<td height=24 >%s</td>\n", ss.c_str());    }    fputs("</tr>\n", ofp);    for(int i=0; i<pagenum; i++)    {      //------读取数据-------------------      vehno=DBGrid4->DataSource ->DataSet->FieldByName("vehNo")->AsInteger;      Dtime=DBGrid4->DataSource ->DataSet->FieldByName("datetime")->AsString;      vehid=DBGrid4->DataSource ->DataSet->FieldByName("vehid")->AsString;       axlenum=DBGrid4->DataSource ->DataSet->FieldByName("TotalNum")->AsInteger;       //grnum=DBGrid4->DataSource ->DataSet->FieldByName("AXleNum")->AsInteger;       Totalweight=DBGrid4->DataSource ->DataSet->FieldByName("Totalweigh")->AsInteger;      // overld=DBGrid4->DataSource ->DataSet->FieldByName("overld")->AsInteger;       speed=DBGrid4->DataSource ->DataSet->FieldByName("speed")->AsInteger;        autotype=DBGrid4->DataSource->DataSet->FieldByName("autotype")->AsString;       handtype=DBGrid4->DataSource->DataSet->FieldByName("handtype")->AsString;      //       ts=DBGrid4->DataSource ->DataSet->FieldByName("VEHTYPE")->AsString;       if(axlenum>=2&&axlenum<6)       limitweight=Newlimit[axlenum-2];       else        limitweight= Newlimit[4];       overld=0;       if(Totalweight>limitweight)         overld=Totalweight-limitweight;      //---------------------------------       fflush(ofp);       fputs("<tr height=24 >\n", ofp);       //---------------------------       ss=IntToStr(vehno);          fprintf(ofp, "<td height=24 >%s</td>\n", ss.c_str());       ss=Trim(Dtime);          fprintf(ofp, "<td height=24 >%s</td>\n", ss.c_str());       ss=Trim(vehid);          fprintf(ofp, "<td height=24 >%s</td>\n", ss.c_str());       ss=IntToStr(Totalweight);          fprintf(ofp, "<td height=24 >%s</td>\n", ss.c_str());       ss=IntToStr(limitweight);          fprintf(ofp, "<td height=24 >%s</td>\n", ss.c_str());       ss=IntToStr(overld);          fprintf(ofp, "<td height=24 >%s</td>\n", ss.c_str());       ss=IntToStr(speed);          fprintf(ofp, "<td height=24 >%s</td>\n", ss.c_str());       ss= Trim(handtype);          fprintf(ofp, "<td height=24 >%s</td>\n", ss.c_str());       ss= Trim(autotype);       if(ss=="类车")ss="五类车";          fprintf(ofp, "<td height=24 >%s</td>\n", ss.c_str());       ss=IntToStr(axlenum);          fprintf(ofp, "<td height=24 >%s</td>\n", ss.c_str());       //-------------       //--下一行---       DBGrid4->DataSource->DataSet->Next();    }    fputs("</table>\n", ofp);    fclose(ofp);    } //for for   }//for if     BitBtn10->Enabled=true;   }   catch(...)   {     BitBtn10->Enabled=true;   }}//--------------------------------------- 

热点排行