测试
你想利用AI生成下面这份文件吗?
自动化完成并提供word文件可以下载
你只需要写提示词即可,或者简单的复制粘贴即可

AI工具豆包 word版本:2016及以上
先测试一下这份提示词,觉得有用再继续往后看
1.复制下面的内容,打开豆包,粘贴下面的提示词
生成人教版九年级化学初中化学化学方程式
要求:以表格的形式 包含文字描述 现象 化学方程式三列
以html的形式呈现预览 并提供word文档下载按钮 html页面不需要渲染 只提供一个下载按钮即可,确保下载按钮可用
## 文本处理
清除word所有格式,以原始格式展示即可 字号:小四;字体:宋体 英文用Times New Roman
化学方程式中条件部分字号:五号
## 实现方案
前端生成Word文档核心提示词
技术核心:Blob对象创建文件、Object URL下载、HTML转Word格式、CSS样式内联
关键实现:URL.createObjectURL()、download属性、Data URL备选、错误处理
安全考虑:避免浏览器报毒、多重下载保障、内存泄漏防护
格式要求:Word兼容HTML、样式保持、响应式设计
应用场景:在线文档生成、报告导出、内容下载
注意事项:样式内联、及时释放URL、兼容性测试
## 化学方程式的处理:
请按照以下LaTeX格式生成化学方程式:
格式模板:$\mathrm{反应物\frac{\underline{\ {条件}\ }}{\ }生成物}$
具体要求:
1. 整个方程式必须用 $\mathrm{...}$ 包装
2. 反应条件必须使用 \frac{\underline{\ {条件}\ }}{\ } 格式
3. 条件文字前后必须有空格:\ {条件内容}\
4. 气体用 \uparrow 表示,沉淀用 \downarrow 表示
5. 如果没有条件 条件用6个空格表示
6. 条件为加热时,用 \Delta 表示
7. 条件必须要用{}包裹起来
8. 系数和下标使用标准LaTeX语法
示例参考:
- $\mathrm{2H_{2}O\frac{\underline{\ {通电}\ }}{\ }2H_{2} \uparrow + O_{2} \uparrow}$
- $\mathrm{C + O_{2}\frac{\underline{\ {点燃}\ }}{\ }CO_{2}}$
- $\mathrm{2Mg + O_{2}\frac{\underline{\ {点燃}\ }}{\ }2MgO}$
- $\mathrm{4Al + 3O_{2}\frac{\underline{\ \ \ \ \ \ }}{\ }2Al_{2}O_{3}}$
特别需求:在生成的word文件中 化学方程式必须以latex公式代码的形式呈现
2.点击代码框右上角的预览,点击下载word文档,会得到一份word文件
3.打开word文件,这时候化学方程式是代码形式,接下来将化学方程式渲染,按Alt+F11,复制以下代码,粘贴并运行(按F5可直接运行)
这个配置完成以后,不需要重复配置,可以一直使用,通过宏运行
Sub 公式转化并自动调整字体()
Dim regEx As Object
Dim matches As Object
Dim match As Object
Dim rng As Range
Dim formulaText As String
Dim isDisplayMode As Boolean
' 创建正则表达式对象
Set regEx = CreateObject("VBScript.RegExp")
With regEx
.Global = True
' 匹配 $$独立公式$$ 和 $行内公式$
.Pattern = "\$\$([^$]+)\$\$|\$([^$]+)\$"
End With
' 关闭屏幕更新以提高性能
Application.ScreenUpdating = False
' 在整个文档内容中执行正则匹配
Set matches = regEx.Execute(ActiveDocument.Content.Text)
' 从后往前处理,避免替换导致的位置偏移
Dim i As Long
For i = matches.Count - 1 To 0 Step -1
Set match = matches(i)
' 判断是独立公式还是行内公式
If Not match.SubMatches(0) = "" Then
' $$独立公式$$
formulaText = Trim(match.SubMatches(0))
isDisplayMode = True
Else
' $行内公式$
formulaText = Trim(match.SubMatches(1))
isDisplayMode = False
End If
' 查找匹配的公式范围
Set rng = ActiveDocument.Content
With rng.Find
.Text = match.Value ' 查找完整的匹配文本(包括$或$$)
.Forward = True
.Wrap = wdFindStop
If .Execute Then
' 移除$符号,只保留公式内容
rng.Text = formulaText
' 将文本转换为Word公式
rng.OMaths.Add rng
rng.OMaths.BuildUp
' 将公式转换为普通文本
rng.OMaths(1).ConvertToNormalText
End If
End With
Next i
' 将整个文档的字体设置为 Times New Roman
ActiveDocument.Content.Font.Name = "Times New Roman"
' 恢复屏幕更新
Application.ScreenUpdating = True
MsgBox "公式已转换为普通文本,并且整个文档的字体已设置为 Times New Roman!共处理 " & matches.Count & " 个公式。"
End Sub
难点
1.如何提供可下载的word文件
这里主要利用html、css、js语法去生成可下载的word文件
以html的形式呈现预览 并提供word文档下载按钮,确保下载按钮可用
## 文本处理
自己提格式要求:见word文件排版
## 实现方案
前端生成Word文档核心提示词
技术核心:Blob对象创建文件、Object URL下载、HTML转Word格式、CSS样式内联
关键实现:URL.createObjectURL()、download属性、Data URL备选、错误处理
安全考虑:避免浏览器报毒、多重下载保障、内存泄漏防护
格式要求:Word兼容HTML、样式保持、响应式设计
应用场景:在线文档生成、报告导出、内容下载
注意事项:样式内联、及时释放URL、兼容性测试
2.word文件排版
AI自己生成的word文件会带有各种花里胡哨的排版
如果喜欢花里胡哨的排版,可以不做限制
如果不喜欢,可以修改以下提示词自定义
## 文本处理
清除word所有格式,以原始格式展示即可
字体:中文:宋体;英文:Times New Roman
一级标题:
字号:小二
二级标题:
字号:四号
正文:
字号:小四
其他:
3.如何生成化学方程式
主要利用Word2016以后支持latex公式,我们先用AI生成公式代码,然后用word自带的VBA语法一件渲染成化学方程式
(1)生成latex公式提示词
# 化学方程式
请按照以下LaTeX格式生成化学方程式:
格式模板:$\mathrm{反应物\frac{\underline{\ {条件}\ }}{\ }生成物}$
具体要求:
1. 整个方程式必须用 $\mathrm{...}$ 包装
2. 反应条件必须使用 \frac{\underline{\ {条件}\ }}{\ } 格式
3. 条件文字前后必须有空格:\ {条件内容}\
4. 气体用 \uparrow 表示,沉淀用 \downarrow 表示
5. 如果没有条件 条件用6个空格表示
6. 条件为加热时,用 \Delta 表示
7. 条件必须要用{}包裹起来
8. 系数和下标使用标准LaTeX语法
示例参考:
- $\mathrm{2H_{2}O\frac{\underline{\ {通电}\ }}{\ }2H_{2} \uparrow + O_{2} \uparrow}$
- $\mathrm{C + O_{2}\frac{\underline{\ {点燃}\ }}{\ }CO_{2}}$
- $\mathrm{2Mg + O_{2}\frac{\underline{\ {点燃}\ }}{\ }2MgO}$
- $\mathrm{4Al + 3O_{2}\frac{\underline{\ \ \ \ \ \ }}{\ }2Al_{2}O_{3}}$
特别需求:在生成的word文件中 化学方程式必须以latex公式代码的形式呈现
(2)利用VBA一件渲染化学方程式
' 利用VBA代码,将用$$或$包裹的公式直接转化成word公式
Sub ConvertLatexToEquation()
Dim regEx As Object
Dim matches As Object
Dim match As Object
Dim rng As Range
Dim formulaText As String
Dim isDisplayMode As Boolean
' 创建正则表达式对象
Set regEx = CreateObject("VBScript.RegExp")
With regEx
.Global = True
' 匹配 $$独立公式$$ 和 $行内公式$
.Pattern = "\$\$([^$]+)\$\$|\$([^$]+)\$"
End With
' 关闭屏幕更新以提高性能
Application.ScreenUpdating = False
' 在整个文档内容中执行正则匹配
Set matches = regEx.Execute(ActiveDocument.Content.Text)
' 从后往前处理,避免替换导致的位置偏移
Dim i As Long
For i = matches.Count - 1 To 0 Step -1
Set match = matches(i)
' 判断是独立公式还是行内公式
If Not match.SubMatches(0) = "" Then
' $$独立公式$$
formulaText = Trim(match.SubMatches(0))
isDisplayMode = True
Else
' $行内公式$
formulaText = Trim(match.SubMatches(1))
isDisplayMode = False
End If
Set rng = ActiveDocument.Range
With rng.Find
.Text = match.Value ' 查找完整的匹配文本(包括$或$$)
.Forward = True
.Wrap = wdFindStop
If .Execute Then
' 移除$符号,只保留公式内容
rng.Text = formulaText
' 将文本转换为Word公式
rng.OMaths.Add rng
rng.OMaths.BuildUp
' 如果是独立公式,设置为居中显示
If isDisplayMode Then
rng.ParagraphFormat.Alignment = wdAlignParagraphCenter
End If
End If
End With
Next i
' 恢复屏幕更新
Application.ScreenUpdating = True
MsgBox "公式转换完成!共处理 " & matches.Count & " 个公式。"
End Sub
(3)利用VBA渲染普通公式
' 支持普通的公式转换(好用一点)
Sub 公式转换()
Dim rng As Range
Dim startPos As Long, endPos As Long
Dim formulaText As String
Dim isDisplayMode As Boolean
Dim found As Boolean
Dim count As Integer
Application.ScreenUpdating = False
Set rng = ActiveDocument.Content
count = 0
' 首先处理独立公式 $$
Do
found = False
Set rng = ActiveDocument.Content
With rng.Find
.text = "$$"
.Forward = True
.Wrap = wdFindStop
.Execute
End With
If rng.Find.found Then
startPos = rng.Start
rng.Collapse wdCollapseEnd
' 查找结束的 $$
With rng.Find
.text = "$$"
.Forward = True
.Wrap = wdFindStop
.Execute
End With
If rng.Find.found Then
endPos = rng.End
' 提取公式文本
Set rng = ActiveDocument.Range(startPos, endPos)
formulaText = Mid(rng.text, 3, Len(rng.text) - 4) ' 移除前后的 $$
formulaText = Trim(formulaText)
' 替换为公式
rng.text = formulaText
' 转换为Word公式
On Error Resume Next
Set om = rng.OMaths.Add(rng)
If Err.Number = 0 Then
rng.OMaths(1).BuildUp
rng.ParagraphFormat.Alignment = wdAlignParagraphCenter
count = count + 1
End If
On Error GoTo 0
found = True
End If
End If
Loop While found
' 然后处理行内公式 $
Do
found = False
Set rng = ActiveDocument.Content
With rng.Find
.text = "$"
.Forward = True
.Wrap = wdFindStop
.Execute
End With
If rng.Find.found Then
startPos = rng.Start
rng.Collapse wdCollapseEnd
' 查找结束的 $
With rng.Find
.text = "$"
.Forward = True
.Wrap = wdFindStop
.Execute
End With
If rng.Find.found Then
endPos = rng.End
' 提取公式文本
Set rng = ActiveDocument.Range(startPos, endPos)
formulaText = Mid(rng.text, 2, Len(rng.text) - 2) ' 移除前后的 $
formulaText = Trim(formulaText)
' 替换为公式
rng.text = formulaText
' 转换为Word公式
On Error Resume Next
Set om = rng.OMaths.Add(rng)
If Err.Number = 0 Then
rng.OMaths(1).BuildUp
count = count + 1
End If
On Error GoTo 0
found = True
End If
End If
Loop While found
Application.ScreenUpdating = True
MsgBox "公式转换完成!共处理 " & count & " 个公式。"
End Sub