js如何将deepSeek生成的报告添加封面并下载成word

思路分析:

先将deepSeek生成的markdown格式的报告内容转换成html格式,通过模板字符串拼接成一个完整的html字符串content(包含html根元素,head头部,style样式,body主体),然后在字符串content 中通过标签和css样式生成封面,最后将字符串content 生成blob并标记为word格式,通过创建a标签并点击实现下载功能。

实现步骤:

1.利用markdown-it将markdown格式报告内容转换成html格式;

import MarkdownIt from "markdown-it"
// 1、新建实例md:
const md = new MarkdownIt()
const data = md.render("\n\n**上海百昌科技集团有限公司尽职调查报告**  \n\n---\n\n### **一、公司概况**  \n上海百昌科技集团有限公司(以下简称“百昌科技”)是一家专注于人工智能技术研发与应用的高科技企业,注册地位于上海市,注册资本未公开披露。公司核心业务涵盖智能应用开发、大数据分析及AI解决方案服务,旗下产品“师爷AI”基于自研的DeepSeek-R1模型,提供信息咨询与技术支持。股权结构信息需进一步核实,但初步显示其实控人及主要股东背景与科技领域关联紧密。  \n\n---\n\n### **二、历史沿革与股权变动**  \n公司成立于2018年,初期聚焦数据服务,2022年起转型AI技术开发,2024年推出“师爷AI”产品。历史股权变动暂无公开重大记录,需进一步核查是否存在关联方代持或未披露的资本运作。  \n\n---\n\n### **三、业务与市场分析**  \n1. **产品与技术**  \n   核心产品“师爷AI”基于开源模型DeepSeek-R1优化,具备自然语言处理与多场景交互能力,应用领域包括企业服务、教育及消费级市场。技术优势体现在模型微调能力与响应速度,但需关注技术迭代风险及开源协议合规性。  \n2. **市场地位**  \n   当前国内AI助手市场竞争激烈,百昌科技市场份额较小,但凭借垂直领域定制化服务形成差异化优势。行业数据显示,2024年AI助手市场规模同比增长28%,未来三年年均复合增长率预计达19%。  \n3. **研发投入**  \n   公司研发团队占比超60%,近三年研发费用率约25%-30%,高于行业平均水平,已申请5项AI相关专利,技术储备集中在NLP领域。  \n\n---\n\n### **四、财务分析(模拟数据)**  \n基于可比公司推算,百昌科技近三年财务表现如下(单位:万元):  \n| **指标**         | **2022年** | **2023年** | **2024年** |  \n|------------------|------------|------------|------------|  \n| 营业收入         | 8,200      | 12,500     | 18,000     |  \n| 净利润           | -1,200     | 800        | 2,500      |  \n| 毛利率           | 42%        | 48%        | 53%        |  \n| 资产负债率       | 65%        | 58%        | 50%        |  \n| 应收账款周转天数 | 75         | 68         | 60         |  \n\n**关键分析:**  \n- **盈利能力**:毛利率逐年提升,反映产品附加值增强;2024年净利润率13.9%,接近行业头部企业水平。  \n- **偿债能力**:资产负债率优化明显,流动比率从0.9提升至1.3,短期偿债压力缓解。  \n- **运营效率**:存货周转率从5.2次/年提升至6.8次/年,但应收账款周转天数仍高于行业均值(45天),需关注客户回款风险。  \n\n---\n\n### **五、法律与合规**  \n1. **知识产权**:持有5项发明专利,未发现重大侵权诉讼记录。  \n2. **数据合规**:需核查用户数据采集与处理是否符合《个人信息保护法》要求。  \n3. **关联交易**:2024年向关联方采购技术服务占比12%,交易定价需评估公允性。  \n\n---\n\n### **六、风险提示**  \n1. **技术风险**:AI模型迭代依赖持续研发投入,若技术滞后可能导致市场份额流失。  \n2. **市场风险**:头部企业(如百度、科大讯飞)垄断效应加剧,挤压中小厂商空间。  \n3. **财务风险**:经营性现金流2024年仅为1,200万元,低于净利润,盈利质量待提升。  \n\n---\n\n### **七、结论与建议**  \n百昌科技在AI垂直领域展现较强技术落地能力,财务稳健性改善显著,但面临行业集中度提升的竞争压力。建议:  \n- **股权投资**:可考虑战略注资,侧重技术合作与市场资源整合,估值参考PS(市销率)8-10倍。  \n- **债权合作**:短期授信需强化应收账款质押管理,控制敞口不超过净资产的30%。  \n- **风险缓释**:要求公司补充数据合规审计报告,并设立技术迭代对赌条款。  \n\n---  \n**报告说明**:以上分析基于公开信息与行业数据模拟,部分细节需进一步实地尽调验证。"
      )

2.将html格式的报告拼接成一个完整的html文件

3.在html文件中通过标签和css样式生成封面

const content = `
     <html>
        <head>
            <meta charset="UTF-8">
            <style>
                @page {
                    margin: 0;
                    size: A4 portrait;
                    mso-page-orientation: portrait;
                }
                body {
                    margin: 0;
                    mso-line-height-rule: exactly;
                }
                .cover-page {
                    height: 100vh;
                    text-align:center;
                    display: flex;
                    justify-content: center;
                    align-items: center;
                }
            </style>
        </head>
        <body>
            <!-- 封面页 -->
            <div class="cover-page">
                <div>&thinsp;</div>
                <div>&thinsp;</div>
                <div>&thinsp;</div>
                <div>&thinsp;</div>
                <div>&thinsp;</div>
                <div>&thinsp;</div>
                <h1>法</h1>
                <h1>律</h1>
                <h1>尽</h1>
                <h1>职</h1>
                <h1>调</h1>
                <h1>查</h1>
                <h1>报</h1>
                <h1>告</h1>
            </div>
            <!-- 正文内容 -->
            <div class="content">
               ${data}
            </div>
        </body>
    </html>
    `

4.将字符串htmlStr生成blob并标记为word格式

// 生成并下载 .doc 文件
const blob = new Blob(["\ufeff", content], { type: "application/msword" })

5.通过创建a标签并点击实现下载功能

const link = document.createElement("a")
link.href = URL.createObjectURL(blob)
link.download = "法律尽职调查报告.doc"
link.click()
URL.revokeObjectURL(link.href)

疑难点及解决方案:

1. 问题描述:word文件打开是网页视图,而不是页面视图,展示样式不规范

    原因分析:生成的word文档虽然扩展名为 .doc,但内容实际是 HTML 代码。Word 会根据文件内容(而非扩展名)自动判断格式,若检测到 HTML 结构,可能默认以网页视图渲染。

    解决方案:通过添加 Word 专有命名空间 和 强制文档模式声明,让 Word 将其识别为原生文档。但是如果 Word 版本过旧(如 2003)或未正确解析 XML,需要在 <head>中添加旧版兼容标签:

<html xmlns:v="urn:schemas-microsoft-com:vml"
          xmlns:o="urn:schemas-microsoft-com:office:office"
          xmlns:w="urn:schemas-microsoft-com:office:word"
          xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
          xmlns="http://www.w3.org/TR/REC-html40">
        <head>
            <meta charset="UTF-8">
            <meta name="ProgId" content="Word.Document">
            <meta name="Generator" content="Microsoft Word 15">
            <!-- 针对 Word 2003 的兼容性声明 -->
            <!--[if gte mso 9]>
            <xml>
               <w:WordDocument>
                <w:View>Print</w:View>
               </w:WordDocument>
            </xml>
           <![endif]-->
        </head>
</html>

2.问题描述:封面页虽然设置了height:100vh,但是分页功能未生效;

  解决方案:添加分页符增强样式:

<style>
 /* 分页符增强样式 */
   .page-break {
           page-break-after: always;
           mso-page-break-after: always;
           height: 0;
           visibility: hidden;
    }
</style>
<body>
    <!-- 封面页 -->
    <div class="cover-page">...</div>

    <!-- 分页符(双重保障) -->
    <div class="page-break"></div>
    <!--[if gte mso 9]>
    <br clear="all" style="mso-ignore:all; page-break-before:always" />
    <![endif]-->

    <!-- 正文内容 -->
    <div class="content">...</div>
 </body>

实现效果:

完整代码:

const downFn = () => {
      const data = md.render(
        "\n\n**上海百昌科技集团有限公司尽职调查报告**  \n\n---\n\n### **一、公司概况**  \n上海百昌科技集团有限公司(以下简称“百昌科技”)是一家专注于人工智能技术研发与应用的高科技企业,注册地位于上海市,注册资本未公开披露。公司核心业务涵盖智能应用开发、大数据分析及AI解决方案服务,旗下产品“师爷AI”基于自研的DeepSeek-R1模型,提供信息咨询与技术支持。股权结构信息需进一步核实,但初步显示其实控人及主要股东背景与科技领域关联紧密。  \n\n---\n\n### **二、历史沿革与股权变动**  \n公司成立于2018年,初期聚焦数据服务,2022年起转型AI技术开发,2024年推出“师爷AI”产品。历史股权变动暂无公开重大记录,需进一步核查是否存在关联方代持或未披露的资本运作。  \n\n---\n\n### **三、业务与市场分析**  \n1. **产品与技术**  \n   核心产品“师爷AI”基于开源模型DeepSeek-R1优化,具备自然语言处理与多场景交互能力,应用领域包括企业服务、教育及消费级市场。技术优势体现在模型微调能力与响应速度,但需关注技术迭代风险及开源协议合规性。  \n2. **市场地位**  \n   当前国内AI助手市场竞争激烈,百昌科技市场份额较小,但凭借垂直领域定制化服务形成差异化优势。行业数据显示,2024年AI助手市场规模同比增长28%,未来三年年均复合增长率预计达19%。  \n3. **研发投入**  \n   公司研发团队占比超60%,近三年研发费用率约25%-30%,高于行业平均水平,已申请5项AI相关专利,技术储备集中在NLP领域。  \n\n---\n\n### **四、财务分析(模拟数据)**  \n基于可比公司推算,百昌科技近三年财务表现如下(单位:万元):  \n| **指标**         | **2022年** | **2023年** | **2024年** |  \n|------------------|------------|------------|------------|  \n| 营业收入         | 8,200      | 12,500     | 18,000     |  \n| 净利润           | -1,200     | 800        | 2,500      |  \n| 毛利率           | 42%        | 48%        | 53%        |  \n| 资产负债率       | 65%        | 58%        | 50%        |  \n| 应收账款周转天数 | 75         | 68         | 60         |  \n\n**关键分析:**  \n- **盈利能力**:毛利率逐年提升,反映产品附加值增强;2024年净利润率13.9%,接近行业头部企业水平。  \n- **偿债能力**:资产负债率优化明显,流动比率从0.9提升至1.3,短期偿债压力缓解。  \n- **运营效率**:存货周转率从5.2次/年提升至6.8次/年,但应收账款周转天数仍高于行业均值(45天),需关注客户回款风险。  \n\n---\n\n### **五、法律与合规**  \n1. **知识产权**:持有5项发明专利,未发现重大侵权诉讼记录。  \n2. **数据合规**:需核查用户数据采集与处理是否符合《个人信息保护法》要求。  \n3. **关联交易**:2024年向关联方采购技术服务占比12%,交易定价需评估公允性。  \n\n---\n\n### **六、风险提示**  \n1. **技术风险**:AI模型迭代依赖持续研发投入,若技术滞后可能导致市场份额流失。  \n2. **市场风险**:头部企业(如百度、科大讯飞)垄断效应加剧,挤压中小厂商空间。  \n3. **财务风险**:经营性现金流2024年仅为1,200万元,低于净利润,盈利质量待提升。  \n\n---\n\n### **七、结论与建议**  \n百昌科技在AI垂直领域展现较强技术落地能力,财务稳健性改善显著,但面临行业集中度提升的竞争压力。建议:  \n- **股权投资**:可考虑战略注资,侧重技术合作与市场资源整合,估值参考PS(市销率)8-10倍。  \n- **债权合作**:短期授信需强化应收账款质押管理,控制敞口不超过净资产的30%。  \n- **风险缓释**:要求公司补充数据合规审计报告,并设立技术迭代对赌条款。  \n\n---  \n**报告说明**:以上分析基于公开信息与行业数据模拟,部分细节需进一步实地尽调验证。"
      )
      const content = `
     <html xmlns:v="urn:schemas-microsoft-com:vml"
          xmlns:o="urn:schemas-microsoft-com:office:office"
          xmlns:w="urn:schemas-microsoft-com:office:word"
          xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
          xmlns="http://www.w3.org/TR/REC-html40">
        <head>
            <meta charset="UTF-8">
            <meta name="ProgId" content="Word.Document">
            <meta name="Generator" content="Microsoft Word 15">
            <!-- 针对 Word 2003 的兼容性声明 -->
            <!--[if gte mso 9]>
            <xml>
               <w:WordDocument>
                <w:View>Print</w:View>
               </w:WordDocument>
            </xml>
          <![endif]-->
            <style>
                @page {
                    margin: 0;
                    size: A4 portrait;
                    mso-page-orientation: portrait;
                }
                body {
                    margin: 0;
                    mso-line-height-rule: exactly;
                }
                .cover-page {
                    height: 100vh;
                    text-align:center;
                    display: flex;
                    justify-content: center;
                    align-items: center;
                }
                /* 分页符增强样式 */
                .page-break {
                    page-break-after: always;
                    mso-page-break-after: always;
                    height: 0;
                    visibility: hidden;
                }
            </style>
        </head>
        <body>
            <!-- 封面页 -->
            <div class="cover-page">
                <div>&thinsp;</div>
                <div>&thinsp;</div>
                <div>&thinsp;</div>
                <div>&thinsp;</div>
                <div>&thinsp;</div>
                <div>&thinsp;</div>
                <h1>法</h1>
                <h1>律</h1>
                <h1>尽</h1>
                <h1>职</h1>
                <h1>调</h1>
                <h1>查</h1>
                <h1>报</h1>
                <h1>告</h1>
            </div>

            <!-- 分页符(双重保障) -->
            <div class="page-break"></div>
            <!--[if gte mso 9]>
                <br clear="all" style="mso-ignore:all; page-break-before:always" />
            <![endif]-->

            <!-- 正文内容 -->
            <div class="content">
               ${data}
            </div>
        </body>
    </html>
    `

      // 生成并下载 .doc 文件
      const blob = new Blob(["\ufeff", content], { type: "application/msword" })
      const link = document.createElement("a")
      link.href = URL.createObjectURL(blob)
      link.download = "法律尽职调查报告.doc"
      link.click()
      URL.revokeObjectURL(link.href)
    }

### 使用DeepSeek创建Word文档或Excel文件 #### 插件安装 为了利用DeepSeek的功能来创建Word文档或Excel文件,首先需要确保已正确安装官方提供的插件。访问官方网站获取适用于不同版本Office软件的兼容插件,按照指示完安装过程[^3]。 #### 创建新文档或表格 一旦功安装激活了DeepSeek插件,在启动Microsoft Word或Excel时会发现界面上新增了一些选项卡或是按钮用于调用AI辅助功能。通过这些界面元素可以轻松发起请求让DeepSeek帮助构建所需的内容结构或者填充数据模板。 对于Word而言,可以在新建空白文档之后借助于内置提示输入主题词句从而引导AI自动生成文章框架;而对于Excel来说,则可以通过指定某些参数(比如列头名称、预期的数据范围等),使程序自动填充相应的单元格内容形初步的工作表雏形[^1]。 ```python # Python示例代码非实际应用于Word/Excel中的方式, # 而是用来形象化说明如何向API传递指令以生成特定类型的文件。 import requests def create_document(document_type, content): url = "https://api.deepseek.example/create" payload = { 'type': document_type, 'content': content } response = requests.post(url, json=payload) return response.json() create_document('word', {'title': '年度销售报告'}) create_document('excel', {'columns': ['日期', '销售额'], 'data_range': [[202301, 500], [202302, 600]]}) ``` 值得注意的是,虽然上述方法提供了便捷途径快速搭建基础性的文档和电子表格,但在正式应用前仍需仔细校验由AI产出的结果准确性以及格式是否满足具体业务需求。此外,随着技术进步和个人偏好差异,建议持续关注产品更新以便享受更优质的用户体验和服务改进[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值