|

分享源码
界面截图: |
- |
是否带模块: |
- |
备注说明: |
- |
前期在写某采集的过程中,要把图文混排写出到word,跟据论坛几位大牛的源码,基本实现了它的功能,但因为对源码的原理不太明白,所以 功能还是有缺陷,我共试了三种方式,其实是两种,为了帮助后面的朋友,特意贴出来,供有用到的参考,同时,也请大佬能完善。
第一种:使用论坛word模块:
变量名 | 类 型 | 静态 | 数组 | 备 注 | 文本组 | 文本型 | | 0 | index | 整数型 | | | 图片数据 | 字节集 | | | 现有文档 | 对象 | | | 集_文本 | 变体型 | | |
word对象. 创建 ()word对象. 打开文档 (取运行目录 () + “\模板.docx”)处理事件 ()延迟 (2000 )word对象. 可视 (真) 如果真 (取反 (word对象. 可视与否 ()) ) 状态条1. 置文本 (1, “未能成功打开文档!.”) 再次执行 ()word对象.到文档尾 ()word对象. 字体名 (“仿宋”)word对象. 字体大小 (18 )word对象. 字体加粗 (真)word对象. 文本对齐 (1 )word对象. 输入文本 (编辑框EX2.内容 )word对象. 文本对齐 (0 )word对象. 字体大小 (14 )数组清零 (文本组 )文本_分割文本 (富文本框EX1.内容, #换行符, , 文本组 ) 计次循环首 (取数组成员数 (文本组 ), index ) 如果 (取文本左边 (文本组 [index ], 4 ) = “http”)  word对象. 插入图片 (文本组 [index ]) 处理事件 ()    word对象. 输入文本 (文本组 [index ]) 处理事件 () word对象. 输入文本 (, 1 ) 计次循环尾 ()word对象. 另存文档 (保存目录 + “\” + 编辑框EX2.内容 + “.doc”)调试输出 (保存目录 ) 延迟 (1000 )word对象. 关闭文档 (1 )word对象. 退出 () 状态条1. 置文本 (1, “任务结束!.”) 使用excel和word类.EC
第二种:.版本 2
.支持库 ExuiKrnln
.支持库 spec
.子程序 写出WORD文件2
.局部变量 文本组, 文本型, , "0"
.局部变量 局_Word对象, 对象
.局部变量 局_Documents对象, 对象
.局部变量 局_Document对象, 对象
.局部变量 局_Window对象, 对象
.局部变量 局_Selection, 对象
.局部变量 局_Range对象, 对象
.局部变量 文件名, 文本型
.局部变量 index, 整数型
.如果真 (局_Word对象.创建 (“Word.Application”, ) = 假) ' 创建
处理事件 ()
信息框 (“您的计算机中可能没有安装Word程序!”, #错误图标, “错误”, )
返回 ()
.如果真结束
局_Word对象.写属性 (“Visible”, 真) ' 是否可视
局_Document对象 = 局_Word对象.读对象型属性 (“Documents”, ).对象型方法 (“Add”, ) ' 新建文档
处理事件 ()
程序_延时 (3, 1)
数组清零 (文本组)
文本_分割文本 (富文本框EX1.内容, #换行符, , 文本组)
.计次循环首 (取数组成员数 (文本组), index)
.如果 (取文本左边 (文本组 [index], 4) = “http”)
' 集_图片 = 局_Word对象.读对象型属性 (“Shapes”, ).对象型方法 (“AddPicture”, 文本组 [index], 真, 真)
局_Word对象.读对象型属性 (“Selection”, ).读对象型属性 (“InlineShapes”, ).方法 (“AddPicture”, 文本组 [index])
' 集_图片.读对象型属性 (“WrapFormat”, ).写属性 (“Type”, 3) ' 设置文字环绕图片
' 集_图片.写属性 (“Left”, 50) ' 图片左边距
' 集_图片.写属性 (“Top”, 200) ' 图片顶边距
' 集_图片.写属性 (“LockAspectRatio”, 真) ' 图片锁定长宽比
' 集_图片.写属性 (“Height”, 222) ' 图片高度
' 集_图片.写属性 (“Width”, 333) ' 图片宽度
' 局_Selection.方法 (“TypeParagraph”, ) ' 输入回车
' 集_图片.读对象型属性 (“WrapFormat”, ).写属性 (“Type”, index) ' 设置文字环绕图片
' 集_图片.写属性 (“Left”, 50) ' 图片左边距
' 集_图片.写属性 (“Top”, 200) ' 图片顶边距
' 集_图片.写属性 (“LockAspectRatio”, 真) ' 图片锁定长宽比
' 集_图片.写属性 (“Height”, 222) ' 图片高度
' 集_图片.写属性 (“Width”, 333) ' 图片宽度
.否则
局_Window对象 = 局_Word对象.读对象型属性 (“ActiveWindow”, )
局_Selection = 局_Window对象.读对象型属性 (“Selection”, )
局_Selection.方法 (“TypeText”, 文本组 [index]) ' 内容
局_Selection.方法 (“TypeParagraph”, ) ' 输入回车
.如果结束
处理事件 ()
延迟 (1000)
.计次循环尾 ()
保存目录 = 取运行目录 () + “\” + “公众号文章” + “\” + 公众号名称
.如果真 (取反 (文件是否存在 (保存目录)))
创建目录 (保存目录)
.如果真结束
文件名 = 保存目录 + “\” + 编辑框EX2.内容 + “.doc”
局_Document对象.对象型方法 (“SaveAs”, 文件名).是否为空 ()
局_Word对象.读对象型属性 (“Documents”, ).方法 (“Close”, )
局_Word对象.方法 (“Quit”, )
局_Range对象.清除 ()
局_Selection.清除 ()
局_Window对象.清除 ()
局_Document对象.清除 ()
局_Documents对象.清除 ()
局_Word对象.清除 ()
第三种:.版本 2
.支持库 ExuiKrnln
.支持库 iext
.子程序 写图文内容
.局部变量 局_文件名, 文本型
.局部变量 Doc对象, 对象
.局部变量 Range对象, 对象
.局部变量 表格对象, 对象
.局部变量 文本组, 文本型, , "0"
.局部变量 index, 整数型
.局部变量 文件名, 文本型
.如果真 (局_Word对象.创建 (“Word.Application”, ) = 假) ' 创建
处理事件 ()
信息框 (“您的计算机中可能没有安装Word程序!”, #错误图标, “错误”, )
返回 ()
.如果真结束
局_Word对象.写属性 (“Visible”, 真)
处理事件 ()
局_Word对象.读对象型属性 (“Documents”, ).对象型方法 (“Open”, 取运行目录 () + “\模板.docx”) ' 新建文档
处理事件 ()
程序_延时 (3, 1)
' 局_Word对象.写属性 (“Visible”, 真) ' 是否可视
数组清零 (文本组)
文本_分割文本 (富文本框EX1.内容, #换行符, , 文本组)
.计次循环首 (取数组成员数 (文本组), index)
.如果 (取文本左边 (文本组 [index], 4) = “http”)
局_Word对象.读对象型属性 (“Selection”, ).读对象型属性 (“InlineShapes”, ).方法 (“AddPicture”, 文本组 [index])
处理事件 ()
.否则
' 局_Word对象.读对象型属性 (“Selection”, ).数值方法 (“EndKey”, 6)
局_Word对象.读对象型属性 (“Selection”, ).方法 (“TypeText”, 文本组 [index]) ' 内容
.如果结束
处理事件 ()
.计次循环尾 ()
局_Word对象.读对象型属性 (“ActiveDocument”, ).对象型方法 (“SaveAs”, 保存目录 + “\” + 编辑框EX2.内容 + “.docx”)
处理事件 ()
' 局_Word对象.读对象型属性 (“ActiveDocument”, ).对象型方法 (“SaveAs”, 文件名).是否为空 ()
局_Word对象.读对象型属性 (“Documents”, ).方法 (“Close”, )
局_Word对象.方法 (“Quit”, )
Range对象.清除 ()
Doc对象.清除 ()
局_Word对象.清除 ()
状态条1.置文本 (1, “写出成功!.”)
以上三种都能写出,最简单的是第一种,其实第二种方法是最好的,如果能完善成即可以图文混排,又能限定图片写入的尺寸这样出来的文件是最好的,可惜我是非专业人员,只是工作中写一些东西方便自己工作,所以,如果有朋友或大牛能完善第二种方法再好不过。以此记录。
|
评分
-
查看全部评分
|