基本上,我们必须为我们的会议(许多公司参加)制定会议议程,这是一个圆桌讨论,每次只讨论一家公司。一般布局如下:
1.) Firm 1 - Representative
bullet point
bullet point
bullet point
2.) Firm 2 - Representative
bullet point
bullet point
bullet point
3.) Firm 3 - Representative
etc. etc.
我的公司经常需要制作这些文件,公司和代表的资料都保存在 excel 文件中。有没有办法快速生成此文档?
答案1
是的,您可以使用邮件合并来实现这一点。
打开议程模板并转到邮件功能区。转到“选择收件人”,然后从下拉菜单中选择“使用现有列表”。链接后,您可以在文档中插入字段。转到“插入合并字段”以选择要插入的字段。完成后,转到“预览结果”以查看文档。此时您需要选择正确的记录,您可以使用箭头跳过记录来找到它,也可以转到“编辑收件人列表”以查看自定义列表。之后,转到“完成并合并”并选择“编辑单个文档”并选择“当前记录”选项(如果您有多个,我不建议将它们一起执行,因为您仍然必须将它们分成单个文件)。这将创建文档,您需要做的就是保存它。
答案2
我想提出两种可能的解决方案,第一种是非 VBA,另一种是 VBA(宏)。
方法 1(非 VBA):
- 创建单个工作表工作簿或最好在 Excel 中以表格形式输入会议数据。
- 在 Word 中打开空白文件。
- 从插入标签,选择目的从下拉按钮。
- 然后点击从文件创建选项卡,然后浏览到您想要插入的工作簿。
- 接下来,选择您是否希望链接该对象。
- 完成好的。
方法 2 VBA(宏):
笔记:
- 这需要 Excel 中的表格(最好使用单个 Sheet 文件)。
- 在 VB 编辑器中单击工具然后参考并添加此Microsoft Word 12.0 对象库,最后好的。
创造命令按钮在 Excel 工作表中和复制粘贴这个代码就是它。
Sub CommandButton1_click() Dim tbl As Excel.Range Dim WordApp As Word.Application Dim myDoc As Word.Document Dim WordTable As Word.Table Application.ScreenUpdating = False Application.EnableEvents = False Set tbl = ThisWorkbook.Worksheets(Sheet1.Name).ListObjects("Table1").Range On Error Resume Next Set WordApp = GetObject(class:="Word.Application") Err.Clear If WordApp Is Nothing Then Set WordApp = CreateObject(class:="Word.Application") If Err.Number = 429 Then MsgBox "MS-Word not found, aborting now !!." GoTo EndRoutine End If On Error GoTo 0 WordApp.Visible = True WordApp.Activate Set myDoc = WordApp.Documents.Add tbl.Copy myDoc.Paragraphs(1).Range.PasteExcelTable _ LinkedToExcel:=False, _ WordFormatting:=False, _ RTF:=False Set WordTable = myDoc.Tables(1) WordTable.AutoFitBehavior (wdAutoFitWindow) EndRoutine: Application.ScreenUpdating = True Application.EnableEvents = True Application.CutCopyMode = False End Sub
注意:在此代码中工作表和表格名称是可编辑的。
答案3
我发现python-docx-模板很有趣:
示例.docx
文档:
My house is located
{%- if living_in_town -%}
in urban area
{%- else -%}
in countryside
{%- endif -%}
and I love it.
from docxtpl import DocxTemplate
doc = DocxTemplate("my_word_template.docx")
context = { 'company_name' : "World company" }
doc.render(context)
doc.save("generated_doc.docx")
要从 Excel 读取数据,请参阅https://stackoverflow.com/q/22169325/873282。
其他选择:
答案4
我已经创建了这个免费工具来从 excel 数据生成 word 文档,word 模板必须具有带有列名的占位符,如下所示 ${col_name} 可能会有用! https://it-tun.com/exceltoword/