开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1002|回复: 28
收起左侧

[易语言纯源码] 易语言写出文字与图片混合文档至word源码

[复制链接]
结帖率:72% (26/36)
发表于 2024-8-2 11:37:36 | 显示全部楼层 |阅读模式   陕西省西安市
分享源码
界面截图: -
是否带模块: -
备注说明: -
    前期在写某采集的过程中,要把图文混排写出到word,跟据论坛几位大牛的源码,基本实现了它的功能,但因为对源码的原理不太明白,所以 功能还是有缺陷,我共试了三种方式,其实是两种,为了帮助后面的朋友,特意贴出来,供有用到的参考,同时,也请大佬能完善。

第一种:使用论坛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”)
调试输出 (保存目录)
' 集_文档.方法 (“Save”, )  ' 保存文档
' 集_文档.方法 (“Close”, )  ' 关闭文档
延迟 (1000)
word对象.关闭文档 (1)
word对象.退出 ()
' 清理缓存 ()
状态条1.置文本 (1, “任务结束!.”)


i支持库列表   支持库注释   
spec特殊功能支持库
iext扩展界面支持库一
ExuiKrnln(未知支持库)
使用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, “写出成功!.”)

以上三种都能写出,最简单的是第一种,其实第二种方法是最好的,如果能完善成即可以图文混排,又能限定图片写入的尺寸这样出来的文件是最好的,可惜我是非专业人员,只是工作中写一些东西方便自己工作,所以,如果有朋友或大牛能完善第二种方法再好不过。以此记录。

评分

参与人数 3精币 +4 收起 理由
wa690602724 + 1 感谢分享,很给力!~
光影魔术 + 2 支持开源~!感谢分享
kyo9766 + 1 感谢分享,很给力!~

查看全部评分


本帖被以下淘专辑推荐:

结帖率:0% (0/1)
发表于 2024-8-29 16:26:44 | 显示全部楼层   重庆市重庆市
请问WORD里如何缩进?
回复 支持 反对

使用道具 举报

结帖率:75% (3/4)

签到天数: 14 天

发表于 2024-8-21 18:14:19 | 显示全部楼层   广东省湛江市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

结帖率:100% (3/3)

签到天数: 2 天

发表于 2024-8-9 18:50:18 | 显示全部楼层   湖北省宜昌市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

结帖率:0% (0/5)
发表于 2024-8-7 19:54:45 | 显示全部楼层   辽宁省丹东市
感谢分享源码
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 15 天

发表于 2024-8-5 13:20:19 | 显示全部楼层   广西壮族自治区柳州市
感谢分享源码
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)

签到天数: 21 天

发表于 2024-8-4 19:31:38 | 显示全部楼层   上海市上海市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

结帖率:72% (26/36)
 楼主| 发表于 2024-8-4 10:53:13 | 显示全部楼层   陕西省西安市
嫂子 发表于 2024-8-4 08:36
这三种就是一种
就是调用office对象  区别只是 封装了一下

是的,都是对像操作
回复 支持 反对

使用道具 举报

结帖率:0% (0/2)

签到天数: 19 天

发表于 2024-8-4 10:36:23 | 显示全部楼层   广西壮族自治区玉林市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

签到天数: 20 天

发表于 2024-8-4 09:36:53 | 显示全部楼层   浙江省宁波市
感谢分享,支持开源!!!
回复 支持 反对

使用道具 举报

签到天数: 22 天

发表于 2024-8-4 08:36:08 | 显示全部楼层   浙江省金华市
这三种就是一种
就是调用office对象  区别只是 封装了一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表