如何对复合表格(表格中嵌套表格)进行操作?

河西郎 2017-04-23 01:07:37
问题描述:
1、 有两个数据表(通过关键字段实现 master – detail关系),想将数据表的相关数据输出为如下word文档:




2、 实现的方式有两种:
a) 直接通过代码实现(难度比较大,复杂);
b) 直接编辑一个word文档(模板),格式设定为最终希望输出的格式(见下图),然后直接读写数据实现,目前采用该方式处理

3、 现在遇到以下几个问题:
a) 表格数量问题
通过以下语句获取上图所示word文档(模板)中的表格数量时,经调试跟踪,iTableCount返回值为 2,而非 3,不知何故?
int iTableCount = vDoc.OleFunction("Range").OlePropertyGet("Tables").OlePropertyGet("Count") ;
b) 在word文档(模板)中的复合表格(表格中嵌套表格)中,如何定位期望操作的表格?
通过以下语句希望定位操作表格2,实际以下语句未必实现预期目的,为何?
vTable = vDoc.OleFunction("Range").OlePropertyGet("Tables").OleFunction("Item", 2);
c) 在word文档(模板)中的复合表格(表格中嵌套表格)中,如何定位表格1的表头行,进而在其下方增加一行,实现数据写入?
d) 写入到word文档(模板)中的复合表格(表格中嵌套表格)的表格1的表头行下方的行数(比如通过InsertRowsBelow实现)不确定,如何知道该页文档表格1最后一行是该表格的第几行?
e) 如何对word文档(模板)中位于第一页的表格1最后一列进行合并单元格操作?
f) 上述 a) - e)实现后,如何将表格1及其中嵌套的表格2、表格3一起进行拷贝,进而在word文档(模板)生成第二联?

问题有点多,源代码见附件(源码位于 : http://download.csdn.net/detail/mywindpursue/9822645)
...全文
1291 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
河西郎 2017-07-27
  • 打赏
  • 举报
回复
ActiveSheet.UsedRange.Find(What:="A") 用 C++Builder应该怎么写?谢谢
phprun 2017-07-05
  • 打赏
  • 举报
回复
引用 5 楼 mywindpursue 的回复:
ActiveWorkbook.Sheets.Add Before:=Worksheets(Worksheets.Count) 用C++BUILDER 如何改写?
Wb.OlePropertyGet("Sheets").OleFunction("Add");//默认在第一个Sheet的前面插入。 Wb.OlePropertyGet("Sheets").OleProcedure("Add",(VARIANT *)TNoParam(), Wb.OlePropertyGet("Sheets",1));//默认在第一个Sheet的后面插入。
phprun 2017-07-05
  • 打赏
  • 举报
回复
Wb.OlePropertyGet("Sheets").OleFunction("Add");//默认在第一个Sheet的前面插入。 Wb.OlePropertyGet("Sheets").OleProcedure("Add",(VARIANT *)TNoParam(), Wb.OlePropertyGet("Sheets",1));//默认在第一个Sheet的后面插入。
河西郎 2017-05-31
  • 打赏
  • 举报
回复
ActiveWorkbook.Sheets.Add Before:=Worksheets(Worksheets.Count)
用C++BUILDER 如何改写?
ooolinux 2017-05-26
  • 打赏
  • 举报
回复
引用 3 楼 mywindpursue 的回复:
[quote=引用 2 楼 dante100 的回复:] 输出文件非要用WORD?EXCEL不好吗? http://blog.csdn.net/lcfeng1982/article/details/8124615
没错,已经调整思路,采用Excel输出,实现过程比较简单 但是遇到了一个问题,下面的代码 ActiveSheet.HPageBreaks(1).Location.Row - 1 转换为 int iPageRow = vSheet.PG("HPageBreaks" , 1 ).PG("Location").PG("Row") - 1 ; 运行总是出错,不知道为什么?[/quote] 可能有些字符串要强转为WideString。
河西郎 2017-05-26
  • 打赏
  • 举报
回复
引用 2 楼 dante100 的回复:
输出文件非要用WORD?EXCEL不好吗? http://blog.csdn.net/lcfeng1982/article/details/8124615
没错,已经调整思路,采用Excel输出,实现过程比较简单 但是遇到了一个问题,下面的代码 ActiveSheet.HPageBreaks(1).Location.Row - 1 转换为 int iPageRow = vSheet.PG("HPageBreaks" , 1 ).PG("Location").PG("Row") - 1 ; 运行总是出错,不知道为什么?
dante100 2017-05-16
  • 打赏
  • 举报
回复
输出文件非要用WORD?EXCEL不好吗? http://blog.csdn.net/lcfeng1982/article/details/8124615
河西郎 2017-05-09
  • 打赏
  • 举报
回复
下面的代码如何改写为C++Builder环境下的语句怎么实现?
Documents.Add
ActiveDocument.Tables.Add Selection.Range, _
    3, 3, wdWord9TableBehavior, wdAutoFitContent
With ActiveDocument.Tables(1).Range
    .Copy
    .Cells(1).Range.Text = .Cells(1).NestingLevel
    .Cells(5).Range.PasteAsNestedTable
    With .Cells(5).Tables(1).Range
        .Cells(1).Range.Text = .Cells(1).NestingLevel
        .Cells(5).Range.PasteAsNestedTable
        With .Cells(5).Tables(1).Range
            .Cells(1).Range.Text = _
                .Cells(1).NestingLevel
        End With
    End With
End With
第1章(源代码\第1章) 示例描述:本章演示HTML基本知识 HTML基本标记.html HTML基本标记的用法。 我的第一张网页.html 演示我的第一张网页。 第2章(源代码\第2章) 示例描述:本章演示常用HTML标记和格式 注释.htm 注释的用法。 标题标记.htm 标题标记的用法。 粗体与斜体.htm 粗体与斜体的用法。 段落.htm 段落的用法。 换行.htm 换行的用法。 上标与下标.htm 上标与下标的用法。 下划线与删除线.htm 下划线与删除线的用法。 HTML标记和格式实例手把手.htm HTML标记和格式实例手把手的用法。 第3章(源代码\第3章) 示例描述:本章演示字体标记语法以及其用法 标题字体.htm 标题字体的用法。 标题字体大小.htm 设置标题字体大小。 逻辑字体.htm 逻辑字体的用法。 设置字体大小.htm 设置字体大小。 物理字体.htm 物理字体的用法。 字体实例手把手.htm 演示字体实例手把手。 字体颜色.htm 设置字体颜色。 第4章(源代码\第4章) 示例描述:本章演示文字文字布局标记用法 br的用法.html 演示br的用法。 p的用法.htm 演示p的用法。 不换行.htm 演示不换行标记用法。 段落设置.htm 演示段落设置。 计算机输出格式.htm 计算机输出格式标记和用法。 文字布局手把手.htm 演示文字布局手把手。 文字对齐.htm 演示文字对齐用法。 文字对齐-向右.html 演示文字对齐-向右对齐的用法。 无序列表.htm 演示无序列表的用法。 有序列表.htm 演示有序列表用法。 欲格式化文本.htm 欲格式化文本标记用法。 欲格式化文本行.html 欲格式化文本行标记用法。 第5章(源代码\第5章) 示例描述:本章演示图像标记的用法 alt用法.html 图像参数alt用法。 插入图像.html 演示插入图像。 热点链接.htm 热点链接的用法。 图片链接边框设置.html 图片链接边框设置。 图像top对齐.html 演示图像top对齐。 图像边框设置.html 图像边框设置。 图像链接.htm 图像链接用法。 图像实例手把手.html 演示图像实例手把手。 第6章(源代码\第6章) 示例描述:本章演示超级链接用法 target用法.html 链接参数target的用法。 title用法.html 链接参数title用法。 锚点链接.html 标记锚点链接用法 图片链接.html 演示图片链接。 文字链接.html 演示文字链接。 邮箱地址链接.html 演示邮箱地址链接。 链接实例手把手.html 演示链接实例手把手。 第7章(源代码\第7章) 示例描述:本章演示表单标记的用法 按钮.htm 表单按钮的用法。 表单基本语法.htm 表单基本语法。 表单两属性.html 表单两属性用法。 单选框.htm 表单单选框用法 多行文本域.htm 表单多行文本域用法。 复选框.htm 表单复选框的用法。 密码框.htm 表单密码框的用法。 文本框.htm 表单文本框的用法。 文本域.htm 表单文本域用法。 下拉表.htm 表单下拉表的用法。 表单实例手把手.html 演示表单实例手把手。 第8章(源代码\第8章) 示例描述:本章演示表格标记用法。 表格边框宽度.html 表格边框宽度演示。 表格标题.html 表格标题用法演示。 表格的基本语法.html 表格的基本语法。 表格内对齐.html 演示表格内对齐。 表格内文字对齐.html 演示表格内文字对齐。 表格实例手把手.html 演示表格实例手把手。 表格在网页的对齐.html 演示表格在网页的对齐。 表格在网页对齐.html 演示表格在网页对齐。 跨多列表元.html 演示跨多列表元。 跨多行、多表表元.html 演示跨多行、多表表元用法。 跨多行表元.html 演示跨多行表元用法。 设置表格大小.html 设置表格大小。 第9章(源代码\第9章) 示例描述:本章演示框架标记的用法 不能调节框架大小.html 演示不能调节框架大小。 不支持框架.html 演示不支持框架情况。 垂直分栏.html 演示垂直分栏。 导航框架.html 导航框架的用法。 导航框架链接.html 导航框架链接的用法。 框架边框隐藏.html 演示框架边框隐藏。 框架基本语法.html 框架基本语法。 框架水平分栏.html 设置框架水平分栏。 内联框架.html 设置内联框架。 设置滚动条.html 设置滚动条。 框架实例手把手.html 演示框架实例手把手。 第10章(源代码\第10章) 示例描述:本章演示移动字体和图片用法。 移动的基本语法.html 移动的基本语法。 文字的移动方向.html 设置文字的移动方向。 图片的移动.html 设置图片的移动。 设置移动对象.html 设置设置移动对象。 移动实例手把手—让图片像电影动起来.html 演示让图片像电影动起来。 第11章(源代码\第11章) 示例描述:本章演示网页多媒体标记的用法。 多媒体基本语法.html 多媒体基本语法。 多媒体循环播放.html 演示多媒体循环播放。 隐藏面板.html 隐藏面板的用法。 设置开始时间.html 设置开始时间。 多媒体面板的对齐.html 演示多媒体面板的对齐。 多媒体实例手把手—在网页放视频.html 演示在网页放视频。 smak slow.mp3 名为smak slow 的mp3多媒体文件。 刻舟求剑.swf 名为刻舟求剑的flash多媒体文件。 第12章(源代码\第12章) 示例描述:本章演示用DIV布局。 div布局.html 演示div布局实例。 层嵌套.html 层嵌套的用法。 table布局.html 演示table布局。 DIV布局样式.html 设置DIV布局样式。 如何用DIV布局.html 演示如何用DIV布局。 第13章(源代码\第13章) 示例描述:本章演示DIV与SPAN用法。 SPAN基本语法.html SPAN基本语法。 何时该用SPAN.html 何时该用SPAN。 DIV与SPAN区别一.html 演示DIV与SPAN区别一。 DIV与SPAN区别二.html 演示DIV与SPAN区别二。 DIV与SPAN实例手把手--布局.html 演示DIV与SPAN实例手把手--布局。 第14章(源代码\第14章) 示例描述:本章演示DIV与CSS结合用法。 内联定义样式.html 内联定义样式.html 链入内部CSS样式.html 链入内部CSS样式.html 外链接.html 外链接.html 链接外部CSS样式.html 链接外部CSS样式.html CSS控制DIV.html CSS控制DIV.html DIV+CSS布局.html DIV+CSS布局.html div.css 名为div的样式文件。 style.css 名为style的样式文件。 第15章(源代码\第15章) 示例描述:本章演示CSS基础部分知识。 CSS基础.html 演示CSS基础链接知识用法。 style1.css 名为style1的CSS样式文件。 style2.css 名为style2的CSS样式文件。 style3.css 名为style3的CSS样式文件。 第16章(源代码\第16章) 示例描述:本章演示字体属性用法。 间距与间隔.html 属性间距与间隔用法。 设置行距.html 属性设置行距用法。 字体大小.html 属性字体大小用法。 字体类型.html 属性字体类型用法。 字体设置.html 属性字体设置。 字体颜色.html 属性字体颜色用法。 字体重量.html 属性字体重量用法。 第17章(源代码\第17章) 示例描述:本章演示文本属性用法。 垂直对齐.html 设置垂直对齐。 空格处理.html 设置空格处理。 设置水平对齐.html 设置水平对齐。 首行缩进.html 首行缩进的用法。 文本流方向.html 文本流方向用法。 文本行距.html 文本行距的用法。 文本修饰属性text-decoration.html 文本修饰属性text-decoration用法。 文字垂直对齐.html 文字垂直对齐用法。 字母大小写转换.html 字母大小写转换用法。 字体实例手把手――字体花样.html 演示字体实例手把手――字体花样。 文本设置手把手—给段落设置缩进.html 演示文本设置手把手—给段落设置缩进。 第18章(源代码\第18章) 示例描述:本章演示背景属性用法。 背景的基本语法.html 属性背景的基本语法。 设置背景图像.html 设置背景图像。 设置背景图像滚动.html 设置背景图像滚动。 设置背景图像铺排.html 设置背景图像铺排。 设置背景图像位置.html 设置背景图像位置。 设置背景颜色.html 设置背景颜色。 背景实例手把手.html 演示背景实例手把手。 第19章(源代码\第19章) 示例描述:本章演示尺寸的用法。 设置宽度.html 设置宽度属性。 设置高度.html 设置高度属性 设置层居.html 设置层居实例。 尺寸实例手把手.html 演示尺寸实例手把手。 第20章(源代码\第20章) 示例描述:本章演示外补丁用法。 margin基本语法.html 复合属性margin基本语法。 margin-bottom用法.html 属性margin-bottom用法。 margin-left用法.html 属性margin-left用法。 margin-right用法.html 属性margin-right用法。 margin-top用法.html 属性margin-top用法。 margin实例.html 演示margin实例用法。 margin实例--设置层与层的距离.html 设置层与层的距离。 实例手把手--DIV+CSS结合.html 演示实例手把手--DIV+CSS结合。 第21章(源代码\第21章) 示例描述:本章演示内补丁用法。 padding基本语法和用法.html 复合属性padding基本语法和用法。 padding-bottom用法.html 属性padding-bottom用法。 padding-left用法.html 属性padding-left用法。 padding-right用法.html 属性padding-right用法。 padding-top用法.html 属性padding-top用法。 内补丁padding实例.html 演示内补丁padding实例。 第22章(源代码\第22章) 示例描述:本章演示属性边框用法。 border基本语法.html 复合属性border基本语法。 边框宽度设置.html 边框宽度设置。 边框样式用法.html 设置边框样式用法。 设置边框颜色.html 设置边框颜色。 border-bottom用法.html 属性border-bottom用法。 border-left用法.html 属性border-left用法。 border-right用法.html 属性border-right用法。 border-top用法.html 属性border-top用法。 设置多层边框.html 设置多层边框。 边框实例手把手.html 演示边框实例手把手。 第23章(源代码\第23章) 示例描述:本章演示属性定位用法。 position的用法.html 属性position的用法。 设置对象的边框位置.html 设置对象的边框位置。 z-index用法.html 属性z-index用法。 相对定位实例.html 演示相对定位实例。 绝对定位实例.html 演示绝对定位实例。 实例--圆角制作.html 演示实例--圆角制作。 第24章(源代码\第24章) 示例描述:本章演示属性列表的用法。 列表的预设标记用法.html 演示列表的预设标记用法。 list-style用法.html 属性list-style用法。 设置列表文本排列.html 设置列表文本排列。 设置列表图像.html 设置列表图像。 列表实例手把手.html 演示列表实例手把手。 第25章(源代码\第25章) 示例描述:本章演示用CSS控制表格。 控制表格的基本语法.html 控制表格的基本语法。 设置表格边框独立或合并.html 设置表格边框独立或合并。 设置表格布局的算法.html 设置表格布局的算法。 CSS控制表格实例手把手.html 演示CSS控制表格实例手把手。 第26章(源代码\第26章) 示例描述:本章演示CSS控制滚动条。 设置3D界面亮边颜色和表面颜色.html 设置3D界面亮边颜色和表面颜色。 设置滚动条3D界面暗边颜色和暗边框颜色.html 3D界面暗边和暗边框颜色的用法。 设置滚动条方向箭头的颜色.html 设置滚动条方向箭头的颜色。 设置滚动条基准颜色和拖动区域颜色.html 滚动条基准颜色和拖动区域颜色用法。 设置滚动条亮边框颜色.html 设置滚动条亮边框颜色。 第27章(源代码\第27章) 示例描述:本章演示CSS布局。 clear的用法.html 属性clear的用法。 clip用法.html 属性clip用法。 cursor用法.html 属性cursor用法。 display用法.html 属性display用法。 float的用法.html 属性float的用法。 overflow用法.html 属性overflow用法。 visibility用法.html 属性visibility用法。 第28章(源代码\第28章) 示例描述:本章演示选择符用法。 ID选择符.html 演示ID选择符用法。 包含选择符.html 演示包含选择符用法。 类型选择符.html 演示类型选择符用法。 类选择符.html 演示类选择符用法。 通配选择符.html 演示通配选择符用法。 选择符分组.html 演示选择符分组用法。 第29章(源代码\第29章) 示例描述:本章演示伪类用法。 伪类的类型用法.html 演示伪类的类型用法。 link属性.html 表示link属性。 hover属性.html 表示hover属性。 active属性.html 表示active属性。 visited属性.html 表示visited属性。 第30章(源代码\第30章) 示例描述:本章演示单位的表示用法。 长度单位.html 设置长度单位。 颜色单位.html 设置颜色单位。 第31章(源代码\第31章) 示例描述:本章演示游戏主题网站布局。 游戏网站布局.html 演示游戏网站布局。 style.css 游戏网站的样式文件。 images 图像文件夹。 第32章(源代码\第32章) 示例描述:本章演示企业网站主题布局。 设置DIV.html 设置DIV.html 企业网站主页.html 企业网站主页.html a.css 设置DIV页面的样式文件。 style.css 企业网站的样式文件。 images 图像文件夹。 第33章(源代码\第33章) 示例描述:本章演示 博客首页.html 博客首页布局。 DIV设置.html 设置DIV时的HTML标记。 jquery.js 一个javascript的优秀框架jquery。 index.js 控制博客页面的javascript脚本。 style.css 博客类网站的样式文件。 images 图像文件夹。

13,825

社区成员

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

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