捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  粤ICP备10103342号-1 DELPHI盒子 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 盒子检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
盒子资源分类
全部展开 - 全部合拢
多表头的DBGridEH导出到Excel中
关键字:多表头 DBGridEH 导出 Excel 修改 WriteTitle
来 自:原创
平 台:Win9x,Win2k/NT 下载所需:0 火柴
深浅度:中级 完成时间:2004/7/8
发布者:xue_fg 发布时间:2004/7/8
编辑器:DELPHI7 语  种:简体中文
分 类:组件 下载浏览:611/27293
加入到我的收藏
下载错误报错
登陆以后才能下载
 用户名:
 密 码:
自动登陆(30天有效)
无图片
把自己的解决法子说一下,虽然解决的不是很完美,缺少单元格合并和字体设置。
我重写了单元DBGridEhImpExp中的函数TDBGridEhExportAsXLS.WriteTitle
希望有高手继续完善这个函数,让之最终导出的Excel格式和Elib一样。
//------------------------------------------------------------------
procedure TDBGridEhExportAsXLS.WriteTitle(ColumnsList: TColumnsEhList);
var
  i, k: Integer;
  FPTitleExpArr: TTitleExpArr;
  ListOfHeadTreeNodeList: TList;
  ColSpan, RowSpan: Integer;
  str1:String;
  L: Word;  //writestringcell
begin
  if ColumnsList.Count = 0 then
    Exit;

  if DBGridEh.UseMultiTitle then
  begin
    try
      CreateMultiTitleMatrix(DBGridEh, ColumnsList, FPTitleExpArr, ListOfHeadTreeNodeList);
      //输出除最后一行表头的内容
      for k := ListOfHeadTreeNodeList.Count - 1 downto 1 do
      begin
        for i := 0 to ColumnsList.Count - 1 do
        begin
          if THeadTreeNode(TList(ListOfHeadTreeNodeList.Items[k]).Items[i]) <> nil then
          begin
            CalcSpan(ColumnsList, ListOfHeadTreeNodeList, k, i, ColSpan, RowSpan);
            str1:=THeadTreeNode(TList(ListOfHeadTreeNodeList.Items[k]).Items[i]).Text;
            //=====================================
            L := Length(str1);
            CXlsLabel[1] := 8 + L;
            CXlsLabel[2] := FRow;
            CXlsLabel[3] := FCol;
            CXlsLabel[5] := L;
            StreamWriteWordArray(Stream, CXlsLabel);
            StreamWriteAnsiString(Stream, str1);
            if FCol = ExpCols.Count - 1 then
            begin
              Inc(FRow);
              FCol := 0;
            end
            else
              FCol:=FCol+ColSpan;
            //=====================================
          end;
        end;
      end;
      FRow := ListOfHeadTreeNodeList.Count - 1;
      FCol :=0;
      //输出最后一行表头
      for i := 0 to ColumnsList.Count - 1 do
      begin
        if THeadTreeNode(TList(ListOfHeadTreeNodeList.Items[0]).Items[i]) <> nil then
        begin
          CalcSpan(ColumnsList, ListOfHeadTreeNodeList, 0, i, ColSpan, RowSpan);
          str1:=THeadTreeNode(TList(ListOfHeadTreeNodeList.Items[0]).Items[i]).Text;
          //WriteStringCell(str1);
          //==================================
          L := Length(str1);
          CXlsLabel[1] := 8 + L;
          CXlsLabel[2] := FRow;
          CXlsLabel[3] := FCol;
          CXlsLabel[5] := L*ColSpan;
          StreamWriteWordArray(Stream, CXlsLabel);
          StreamWriteAnsiString(Stream, str1);
          if FCol = ExpCols.Count - 1 then
          begin
            Inc(FRow);
            FCol := 0;
          end
          else
            FCol:=FCol+ColSpan;
          //==================================
        end
        else
        begin
          Inc(FCol);//单云格进一
        end;
      end;
      FRow:=ListOfHeadTreeNodeList.Count;
      FCol:=0;
    finally
      for i := 0 to ListOfHeadTreeNodeList.Count - 1 do
        TList(ListOfHeadTreeNodeList.Items[i]).Free;
      ListOfHeadTreeNodeList.Free;
    end;
  end
  else   //不使用多表头
  begin
    for i := 0 to ColumnsList.Count - 1 do
    begin
      WriteStringCell(ColumnsList[i].Title.Caption);
    end;
  end;
end;
//------------------------------------------------------------------
Google
 
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们
龙脉加密锁 15元起 Grid++Report 报表 申请支付@网
 相关文章
咏南工作室dbgrideh增强版(全部源码)
hnxxcxg 2008/7/9 下+19721/浏+36132 评+28
ehlib(咏南工作室)增强版
hnxxcxg 2008/4/27 下+4468/浏+24055 评+36
给Ehlib中的DBGridEH增加自动过滤功能
solarmoon 2008/1/7 下+12713/浏+28341 评+25
EhLib 过滤功能实现示例
netrobo 2008/1/3 下+8827/浏+21265 评+4
EhLib v4.2.16 中文汉化版
netrobo 2007/12/13 下+36015/浏+37549 评+23
EhLib v4.2.16 FS
sangel 2007/12/11 下+10420/浏+17456 评+7
EhLib v4.2.12 中文汉化版 (OneFly.org 修改…
netrobo 2007/8/8 下+11618/浏+20712 评+11
EhLib v4.2.12 Full Source
fireflyer 2007/8/6 下+8738/浏+17783 评+11
Ehlib v4.1.4 显示增强
auuauu 2007/6/7 下+2978/浏+22025 评+10
EHLib安装到D2007的方法
yuaiguo 2007/4/3 下+0/浏+14184 评+10
去掉 DBLookupEh 的自动填充
chenletian 2007/2/16 下+984/浏+11994 评+3
Ehlib 自动编号及自适应列宽演示
jin_rose 2006/11/5 下+6248/浏+25020 评+20
EhLib v4.1.1 改进版 16043
uuxa 2006/7/20 下+1745/浏+20952 评+6
对 DBEhlib 控件的扩展
uuxa 2006/7/14 下+778/浏+15938 评+0
EhLib 4.1.4 汉化修改版 By netrobo
netrobo 2006/6/28 下+7605/浏+23065 评+18
EhLib 官方 v4.1.4 完整版本带源码
wangkexian 2006/5/10 下+18643/浏+36594 评+44
Ehlib.propStoreEH: PropFilerEh.pas单元有…
hsgrass 2006/3/13 下+406/浏+11526 评+3
Ehlib v4.0 修改版 For BDS2006
dejoy 2006/2/6 下+1493/浏+15192 评+3
DBGrid 更改为 DBGridEh
rongxingdelphi 2006/1/23 下+988/浏+17105 评+1
EhLib v4.1.4 官方评估版
leo 2006/1/18 下+1529/浏+15509 评+17
EhLib v3.6 For D6/D7 傻瓜安装版
dl99 2006/1/9 下+24437/浏+32502 评+21
EhGrid支持Delphi2006的方法
zbluecn 2006/1/8 下+0/浏+12432 评+3
EhLib v3.6 汉化修改版 For DELPHI 2006
cooper_lyt 2006/1/6 下+1641/浏+14657 评+7
EhLib v4.0 官方评估版
yqh110 2005/11/30 下+1510/浏+16775 评+3
DBGridEhColSelect v3.6
lins19741218 2005/10/20 下+1964/浏+17090 评+27
EhLib 3.6 美化汉化修改版
yangzh 2005/7/13 下+9374/浏+29001 评+22
EhLib 3.6 汉化修改版 by Netrobo
netrobo 2005/7/2 下+2119/浏+18874 评+17
EhLib v3.6 FS 简体中文D7版 (FireRose修改…
firerose 2005/6/24 下+5640/浏+25906 评+20
EhLib v3.6 FS For D4-9/CB4-6
jemsn 2005/2/7 下+7838/浏+24701 评+35
Enlib v3.5 for delphi2005
skywolf888 2004/12/16 下+1638/浏+19182 评+6
DBGridEh多表头输出到Excel
jit 2004/12/1 下+3355/浏+24596 评+14
EhLib v3.5 With Full Source
yangzh 2004/10/25 下+2787/浏+21252 评+26
多表头的DBGridEH导出到Excel中
xue_fg 2004/7/8 下+611/浏+27294 评+29
EhLib 3.4 汉化修改版 by Netrobo
netrobo 2004/7/3 下+2179/浏+23533 评+49
Ehlib v3.4 With FireRose For D7 汉化版
firerose 2004/6/1 下+2642/浏+20800 评+18
EhLib v3.4 (支持D8)
jemsn 2004/5/30 下+1830/浏+19868 评+19
EhLib 3.3 汉化版 (增加排序)
firerose 2004/2/19 下+2136/浏+23741 评+42
EhLib v3.3 (数据表格、报表控件包)
hzw008 2004/2/16 下+2011/浏+22809 评+23
Ehlib 3.2 PGT 版 中国式表格
y13y 2003/12/3 下+4581/浏+29820 评+37
EhLib 3.2 (数据表格、报表控件包)
mantousoft 2003/10/17 下+2600/浏+23070 评+33
EhLib 3.0 (数据表格、报表控件包)
mantousoft 2003/9/7 下+3181/浏+23588 评+34
相关评论
共有评论29条
我要发表评论 查看全部评论
 
  DELPHI盒子版权所有 技术支持:深圳市麟瑞科技有限公司 1999-2024 V4.01 粤ICP备10103342号-1 更新RSS列表