如何实现将excel里的数据写入word模板当中
比如excel里面有名字、身份证号、地址、电话对应的word模板里面也有这4项
如果实现读取excel这4个信息,并且写入word里面呢 用第三方库 你如果用excel表的vba编译器的话,请先将word的组件引用"工具--引用--Microsoft Word XX library.." 确定
如果你是用word的vba编译器的话,先将excel的组件引用"工具--引用--Microsoft Excel XX library.." 确定
然后右键左边的vba project 插入 模块(module),将以下代码复制之后,稍加修改就可以用
Sub Test()
'
'宏 从excel复制每行指定的单元格内容到word,每行生成一个word文档
'
Application.ScreenUpdating = False '关闭屏幕刷新
'定义excel的部分
Dim aApp As Application
Dim aBook As Workbook
Dim aSheet As Worksheet
Set aApp = CreateObject("excel.application")
'aApp.Visible = True
Set aBook = aApp.Workbooks().Open(Filename:="C:\Documents and Settings\Jully\桌面\export.xls")
Set aSheet = aBook.Worksheets.Item(1)
'定义word部分
Dim aWrd As Word.Application
Set aWrd = CreateObject("word.application")
'aWrd.Visible = True
Dim aRow As String '记录excel的有效行数
Dim i As Integer
Dim temp As String '取excel的指定单元格数据
aRow = aSheet.Range("A1").CurrentRegion.Cells.Rows.Count
For i = 1 To aRow
temp = aSheet.Cells(Trim(i), 2) & aSheet.Cells(Trim(i), 5) & aSheet.Cells(Trim(i), 5) '取单元格每一行的第2.3.5列的内容
aWrd.Documents.Add '添加新文档
aWrd.Documents(1).Activate '获取焦点
aWrd.Selection.TypeText Text:=temp '输出
aWrd.Documents(1).SaveAs Filename:="C:\" & Trim(i) & ".doc" '保存
aWrd.Documents(1).Close '关闭
Next i
aApp.Quit '退出excel
aWrd.Quit '退出word
Application.ScreenUpdating = True '恢复屏幕刷新
End Sub
https://fishc.com.cn/forum.php?mod=forumdisplay&fid=319&filter=typeid&typeid=722 漫星闪 发表于 2022-8-3 11:21
你如果用excel表的vba编译器的话,请先将word的组件引用"工具--引用--Microsoft Word XX library.." 确定
...
为啥看着有点不太像Python呢…… tommyyu 发表于 2022-8-3 16:04
https://fishc.com.cn/forum.php?mod=forumdisplay&fid=319&filter=typeid&typeid=722
这是读写excel,但是没有读写word! 漫星闪 发表于 2022-8-3 11:21
你如果用excel表的vba编译器的话,请先将word的组件引用"工具--引用--Microsoft Word XX library.." 确定
...
谢谢了,我研究一下 漫星闪 发表于 2022-8-3 11:21
你如果用excel表的vba编译器的话,请先将word的组件引用"工具--引用--Microsoft Word XX library.." 确定
...
你好,我想问一下,我是新手,希望你别见怪哈,因为你得代码我还没细细研究。
如果我要实现将excel里的数据写入一个word得合同模板中,比如这个合同模板里面又名字,地址,电话这3条要素需要EXCEL中对应得导入,这个应该改哪里呢? 给你提供一个用python实现的思路:
1、pip安装python-docx和python-xlsx模块
2、import docx ,import xlsx
3、手动建立一个word,把合同模板调整好,需要填数据的空位用表格,隐藏边框留好
4、读取excel的数据,查询word中的表格,一一对应写入 用VBA的话,就先将要写入的地方一一标记,在用Excel把要导入的数据命名,比入我要写入通知书,把标记命名为001,002这样子的,就是这样,记的替换一些名字Sub 生成Word文件_Click()
2 Dim Word对象 As New Word.Application, 当前路径, 导出文件名, 导出路径文件名, i, j
3 Dim Word表格行号, Word表格列号, Excel数据表列号
4 Dim Str1, Str2
5 当前路径 = ThisWorkbook.Path
6 B = InputBox("请输入数据开始行", "提示")
7 c = InputBox("请输入数据结束行", "提示")
8
9 判断 = 0
10 For i = B To c
11 导出文件名 = "通知书"
12 FileCopy 当前路径 & "\通知书.doc", 当前路径 & "\" & 导出文件名 & "(" & Sheets("统计表").Range("c" & i) & ").doc" '可以将Sheets("1").Range("B" & i)换成其他数据
13 导出路径文件名 = 当前路径 & "\" & 导出文件名 & "(" & Sheets("统计表").Range("c" & i) & ").doc" '可以将Sheets("1").Range("B" & i)换成其他数据
14 With Word对象
15 .Documents.Open 导出路径文件名
16 .Visible = False
17 With .Selection.Find
18 For x = 7 To 1 Step -1 '从大到小,防止字符串序号低位与高位串扰,填写数据即excel表总列数
19 Str1 = "数据" & Format(x, "000")
20 'MsgBox "str1" & Str1
21 Str2 = Sheets("统计表").Cells(i, x)
22 .Text = Str1 '查找到指定字符串
23 .Replacement.Text = Str2 '替换字符串
24 .Execute Replace:=wdReplaceAll '全部替换
25 Next x
26 End With
27
28
29
30 .Selection.WholeStory '全部选中
31 .Selection.Font.Color = wdColorAutomatic '字符为自动颜色
32 End With
33 Word对象.Documents.Save
34 Word对象.Quit
35 Set Word对象 = Nothing
36 ' If i = c Then
37 ' MsgBox "已输出到 Word 文件!", 0 + 48 + 256 + 0, "提示:"
38 ' End If
39
40 Next i
41 If 判断 = 0 Then
42 i = MsgBox("已输出到 Word 文件!", 0 + 48 + 256 + 0, "提示:")
43 End If
44
45 End Sub 漫星闪 发表于 2022-8-4 06:44
用VBA的话,就先将要写入的地方一一标记,在用Excel把要导入的数据命名,比入我要写入通知书,把标记命名为 ...
你太给力了,我慢慢学下!
页:
[1]