精华内容
下载资源
问答
  • word文档怎么添加书签
    2022-06-17 10:10:35

    maven

    <dependency>
                <groupId>e-iceblue</groupId>
                <artifactId>spire.doc.free</artifactId>
                <version>3.9.0</version>
            </dependency>
    <repositories>
            <repository>
                <id>com.e-iceblue</id>
                <url>http://repo.e-iceblue.cn/repository/maven-public/</url>
            </repository>
        </repositories>
    

    正式代码

    /**
         * 根据word文件流根据书签位置签章
         *
         * @param fileUrl docx文件地址
         * @param pdfName pdf文件名称
         * @param type 1=文书,2=证照
         * @return
         */
        public static String fileUrlToPdf(String fileUrl, String pdfName, Integer type) {
            URL url = null;
            InputStream is = null;
            HttpURLConnection httpUrl = null;
            try {
                url = new URL(fileUrl);
                httpUrl = (HttpURLConnection) url.openConnection();
                httpUrl.connect();
                httpUrl.getInputStream();
                is = httpUrl.getInputStream();
                //加载Word测试文档
                Document doc = new Document();
                if (type == 1) {
                    // 奇葩,用doc读不出来,用Auto能读出来shit
                    doc.loadFromStream(is, FileFormat.Auto);
                } else {
                    doc.loadFromStream(is, FileFormat.Docx);
                }
                //获取书签
                BookmarksNavigator bookmarksNavigator = new BookmarksNavigator(doc);
                if (type == 1) {
                    bookmarksNavigator.moveToBookmark("书签");
                    if (null == bookmarksNavigator.getCurrentBookmark()) {
                        bookmarksNavigator.moveToBookmark("签章");
                    }
                } else {
                    bookmarksNavigator.moveToBookmark("签章");
                    if (null == bookmarksNavigator.getCurrentBookmark()) {
                        bookmarksNavigator.moveToBookmark("书签");
                    }
                }
                //如果成功获取书签再签章
                if (null != bookmarksNavigator.getCurrentBookmark()) {
                    //用新的内容添加到原书签位置
                    Paragraph paragraph = new Paragraph(doc);
                    //添加电子章图片
                    DocPicture picture = paragraph.appendPicture("cqjtj.png");
                    paragraph.getFormat().setHorizontalAlignment(HorizontalAlignment.Center); // 这个语句好像没用的
                    //设置图片浮于文字下方
                    picture.setTextWrappingStyle(TextWrappingStyle.Behind); // 有用
                    // 调整图片水平位置
                    Integer high = -50;
                    Integer width = 0;
                    picture.setHorizontalPosition(width);
                    picture.setVerticalPosition(high);
                    TextBodyPart bodyPart = new TextBodyPart(doc);
    
                    bodyPart.getBodyItems().add(paragraph);  // 可以的
    //        bodyPart.getBodyItems().insert(0,paragraph); // 可以的
    //        bookmarksNavigator.replaceBookmarkContent(bodyPart); // 可以的-替换书签
    //        bookmarksNavigator.replaceBookmarkContent(bodyPart,true);
    //        bookmarksNavigator.replaceBookmarkContent(bodyPart,true,true);
                    bookmarksNavigator.insertTextBodyPart(bodyPart);  // 在书签出插入
    //        doc.saveToFile("C:\\Users\\11296\\Desktop\\word\\" + name, FileFormat.Docx);//输出word
                    doc.saveToFile(pdfName, com.spire.doc.FileFormat.PDF);//输出pdf格式有页数限制,仅支持3页
                    doc.close();
    
                    StorageClient1 fastClient = EditFileUtil.getFastClient();
                    File file1 = new File(pdfName);
                    FileInputStream fis = new FileInputStream(file1);
                    ByteArrayOutputStream outStream = new ByteArrayOutputStream();
                    //创建一个Buffer字符串
                    byte[] buffer = new byte[1024];
                    //每次读取的字符串长度,如果为-1,代表全部读取完毕
                    int len = 0;
                    //使用一个输入流从buffer里把数据读取出来
                    while ((len = fis.read(buffer)) != -1) {
                        //用输出流往buffer里写入数据,中间参数代表从哪个位置开始读,len代表读取的长度
                        outStream.write(buffer, 0, len);
                    }
                    // 上传文件,返回相对路径
                    String fastId = fastClient.upload_file1(outStream.toByteArray(), "pdf", null);
                    fis.close();
                    outStream.close();
                    FileUtils.deleteFile(pdfName); // 删除文件
                    return fastId;
                } else {
                    return null;
                }
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            } finally {
                if (is != null) {
                    try {
                        is.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if (httpUrl != null) {
                    httpUrl.disconnect();
                }
            }
        }
    

    测试代码

    /**
         * 
         * @param path 目录
         * @param name 名字
         * @throws IOException
         */
        public static void word(String path, String name) throws IOException {
    //加载包含书签的Word文档
            Document doc = new Document();
            doc.loadFromFile(path + name);
    //获取书签
            BookmarksNavigator bookmarksNavigator = new BookmarksNavigator(doc);
            bookmarksNavigator.moveToBookmark("签章");
    
    //用新的内容替换原书签内容
            Paragraph paragraph = new Paragraph(doc);
            //添加电子章图片
            DocPicture picture = paragraph.appendPicture("C:\\Users\\11296\\Desktop\\cqjtj.png");
            paragraph.getFormat().setHorizontalAlignment(HorizontalAlignment.Center); // 这个语句好像没用的
    //        BigDecimal w = new BigDecimal(picture.getWidth());
    //        w = w.multiply(new BigDecimal(0.1));
    //        BigDecimal h = new BigDecimal(picture.getHeight());
    //        h = h.multiply(new BigDecimal(-0.1));
            //设置图片浮于文字下方
            picture.setTextWrappingStyle(TextWrappingStyle.Behind); // 有用
            Integer high = 0;
            Integer width = 0;
    //        if (name.contains("船舶营业运输证注销登记证明书套打")) {
    //
    //        } else {
                high = -50;
    //        }
            picture.setHorizontalPosition(width);
            picture.setVerticalPosition(high);
            TextBodyPart bodyPart = new TextBodyPart(doc);
    
            bodyPart.getBodyItems().add(paragraph);  // 可以的
    //        bodyPart.getBodyItems().insert(0,paragraph); // 可以的
    //        bookmarksNavigator.replaceBookmarkContent(bodyPart); // 可以的-替换书签
    //        bookmarksNavigator.replaceBookmarkContent(bodyPart,true);
    //        bookmarksNavigator.replaceBookmarkContent(bodyPart,true,true);
            bookmarksNavigator.insertTextBodyPart(bodyPart);  // 在书签出插入
    
    //        doc.saveToFile("C:\\Users\\11296\\Desktop\\word\\" + name, FileFormat.Docx);//输出word
            doc.saveToFile("C:\\Users\\11296\\Desktop\\word\\" + name.split("\\.")[0] + ".pdf", com.spire.doc.FileFormat.PDF);//输出pdf格式有页数限制,仅支持3页
            doc.dispose();
            System.out.println("完成");
        }
    
    更多相关内容
  • 1.[removed]IE浏览器的activex都打开,使用如下网页,可以看到书签顺序和位置: <html> <head> [removed] var word; word = new ActiveXObject("Word.Application"); var range = word.Range; word....
  • C#操作word文档书签替换内容生成文档.zip
  • 主要介绍了C#采用OpenXml实现给word文档添加文字的方法,包括了用法的实例分析,是非常实用的技巧,需要的朋友可以参考下
  • 可以在本地生成新的文档并可以替换书签中的内容
  • 用docx4j,jar出去word书签,在word书签中插入文本 源码可以通过以下链接查看: https://github.com/xulp-mzl/xlp-core https://github.com/xulp-mzl/xlp-third ...实例: public static void main(String[] args) ...
  • 偶然一次机会,一个项目的报表功能指定需要导出为Word文档,因此寻找了很多篇文章,不过多数介绍的比较简单一点,于是也参考了官方的帮助介绍,终于满足了客户的需求。下面我由浅入深来介绍这个控件在实际业务中的...
  • Word中所有书签都是按照【书签名称】排序并保存的,就算在查看时选择【排序依据】为【位置】,其实记录的顺序依然是按照【书签名称】排序,但大部分场景都是按照【书签位置】顺序访问书签,下列代码历史性地将【书签...
  • js将HTML导出生成word文档,方式简单,不需要修改浏览器配置,引入两个js就可以解决该问题,亲测有效
  • 书签Word文档中尤其是在篇幅比较长的word文档中的应用非常广泛。当我们对一段文本添加书签后,这段文本将会被方括号包围。下一次我们可以直接通过查找书签来回到我们上一次的位置而不需要通过滚动条在整个文档中...

    书签在Word文档中尤其是在篇幅比较长的word文档中的应用非常广泛。当我们对一段文本添加书签后,这段文本将会被方括号包围。下一次我们可以直接通过查找书签来快速回到相应文本所在的位置而不需要通过滚动条在整个文档中逐一查找。可以说书签的应用帮我们节省了很多时间。那么如何通过编程的方式来操作Word文档中的书签呢?

    本文将介绍如何使用.NET Word组件-Spire.Doc和C#在Word文档中添加,替换和删除书签。

     

    Spire.Doc组件概述 

    Spire.Doc for .NET 是一款专门对 Word 文档进行操作的 .NET组件。这款组件的主要功能在于帮助开发人员轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。它是一款独立的组件,运行(服务器端或客户端)无需安装 Microsoft Word。支持 多种格式如Word97-2003,Word2007,Word2010 以及 Word2013等。能在Word和XML、RTF、TXT、XPS、EPUB、EMF、HTML 等格式文件之间进行双向转换,还能将 Word 文档高质量地转换为 PDF 和 SVG 文件格式。

     

    添加书签 

    该组件提供了一个类叫做Paragraph,在该类中有两个方法AppendBookmarkStart (string name) 和 AppendBookmarkEnd (string name)可以帮助我们添加书签到指定的段落,其中BookmarkStart代表的是书签的起始位置,BookmarkEnd代表的是书签的结束位置。

    //加载文档
    Document document = new Document();
    document.LoadFromFile(@"test.docx");
     
    //添加书签
    Section section = document.Sections[0];
    section.Paragraphs[2].AppendBookmarkStart("bookmark");
    section.Paragraphs[3].AppendBookmarkEnd("bookmark");
     
    //保存文档
    document.SaveToFile("Bookmark.docx", FileFormat.Docx);


    替换书签

    BookmarkNavigator是用于导航到书签的,通过它我们可以获取,替换和删除指定书签的内容。使用该组件,我们还可以在替换书签时保留原书签的格式,仅需要将ReplaceBookmarkContent (TextBodyPart bodyPart, bool isKeepSourceFirstParaFormat, bool saveFormatting) 方法中的saveFormatting 参数设置为true。

    //加载文档
    Document document = new Document();
    document.LoadFromFile(@"Bookmark.docx");
     
    //添加一个section到文档
    Section sec = document.AddSection();
    //添加两个段落到section
    sec.AddParagraph().AppendText("Welcome Back, ");
    sec.AddParagraph().AppendText("Friend! ");
     
    //获取两个段落的内容(Text Body Part)
    ParagraphBase firstReplacementParagraph = sec.Paragraphs[0].Items.FirstItem as ParagraphBase;
    ParagraphBase lastReplacementParagraph = sec.Paragraphs[sec.Paragraphs.Count - 1].Items.LastItem as ParagraphBase;
    TextBodySelection selection = new TextBodySelection(firstReplacementParagraph, lastReplacementParagraph);
    TextBodyPart part = new TextBodyPart(selection);
     
    //移动到书签“bookmark”, 删除它的内容并保留格式
    BookmarksNavigator bookmarkNavigator = new BookmarksNavigator(document);
    bookmarkNavigator.MoveToBookmark("bookmark", true, true);
    bookmarkNavigator.DeleteBookmarkContent(true);
     
    //用两个段落的内容替换掉原书签的内容并保留格式
    bookmarkNavigator.ReplaceBookmarkContent(part, true, true);
     
    //移除section并保存文档
    document.Sections.Remove(sec);
    document.SaveToFile("ReplaceBookmark.docx");



    删除书签

    在该组件中,每一个Word文档都含有一个书签的集合,我们可以通过Document类的Bookmarks属性来访问该集合,并可以通过该属性来查找指定的书签并将其删除。

    //加载文档
    Document document = new Document();
    document.LoadFromFile(@"Bookmark.docx");
    Bookmark bookmark = document.Bookmarks.FindByName("bookmark");
    //移除书签“bookmark”
    document.Bookmarks.Remove(bookmark);
    //保存文档
    document.SaveToFile("RemoveBookmark.docx", FileFormat.Docx);


    展开全文
  • 主要介绍了Java 替换word文档文字,指定位置插入图片功能,本文通过实例代码给大家讲解,需要的朋友可以参考下
  • 此程序主要展示了如何图片插入事先设定好的书签位置之中。 下载之后可以直接运行。
  • 一、在开发OA办公或与文档相关的Web系统中,难免会遇到这样的需求,需要在word文件中指定一个位置,然后在指定的位置赋值或者插入文件,这样就需要在线动态创建书签的功能。 今天主要介绍用 pageoffice 组件实现...

    一、在开发OA办公或与文档相关的Web系统中,难免会遇到这样的需求,需要在word文件中指定一个位置,然后在指定的位置赋值或者插入文件,这样就需要在线动态创建书签的功能。

    今天主要介绍用 pageoffice  组件实现在线动态创建书签。

    两种方法

    1:后台java代码创建书签(后台创建书签又一定的局限性:只能在文档的首、尾或者原有书签的前后)。

    2:用js方法添加书签,js 方法添加书签比较方便,可以在光标所在的位置添加。

    注意:pageoffice 组件里面的数据区域也就是书签,但是必须以 PO_  开头,并且是唯一的。一个文档中不能出现多个数据区域(书签)。下面的介绍中都会用数据区域。

    二、核心代码

    cf7bd5026ae8c4cbdbdb6543d6d44d64cf6.jpg

    c4851e48f4ca9732eb02a75494a2e6115b9.jpg

    三、具体的实现过程

    具体实现过程

    1.官网http://www.zhuozhengsoft.com/dowm/下载集成文件,引入jar包,配置web.xml

    2.在父页面index.jsp(需要打开文档的页面)放一个a标签或者button

    写a标签之前先引入pageoffice需要的js文件

    <script type="text/javascript" src="/jquery.min.js"></script>
    <script type="text/javascript" src="/pageoffice.js" id="po_js_main"></script>

    然后添加a标签 

    <a href="javascript:POBrowser.openWindowModeless('DataRegionCreate.jsp' , 'width=1200px;height=800px;');">动态创建数据区域</a>

    3.在父页面同级目录下创建一个名为DataRegionCreate.jsp的文件

    <%@ page language="java"
    	import="java.util.*,com.zhuozhengsoft.pageoffice.*,com.zhuozhengsoft.pageoffice.wordwriter.*"
    	pageEncoding="utf-8"%>
    <%
    	PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
    	poCtrl1.setServerPage(request.getContextPath()+"/poserver.zz"); //此行必须
    	//添加自定义按钮
    	poCtrl1.addCustomToolButton("插入书签","addBookMark",5);
    	WordDocument doc=new WordDocument();
    	//创建数据区域,createDataRegion 方法中的三个参数分别代表“新建的数据区域名称”,“数据区域将要插入的位置”,
    	//“与新建的数据区域相关联的数据区域名称”,若当前Word文档中尚无数据区域(书签)或者想在文档的最开头创建时,那么第三个参数为“[home]”
    	//若想在文档的结尾处创建数据区域则第三个参数为“[end]”
    	DataRegion dataRegion1 =  doc.createDataRegion("reg1",DataRegionInsertType.After,"[home]");
    	//给数据区域赋值
    	dataRegion1.setValue("第一个数据区域\r\n");
    	
    	DataRegion dataRegion2 = doc.createDataRegion("reg2",DataRegionInsertType.After,"reg1");
    	dataRegion2.setValue("第二个数据区域\r\n");
    
    	DataRegion dataRegion3 = doc.createDataRegion("reg3",DataRegionInsertType.After,"[end]");
    	dataRegion3.setValue("第三个数据区域\r\n");
    	
    	poCtrl1.setWriter(doc);
    
    	//打开Word文件
    	poCtrl1.webOpen("doc/test.doc", OpenModeType.docNormalEdit,"张三");
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    	<head>
    		<title>新建数据区域</title>
    
    		<meta http-equiv="pragma" content="no-cache">
    		<meta http-equiv="cache-control" content="no-cache">
    		<meta http-equiv="expires" content="0">
    		<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    		<meta http-equiv="description" content="This is my page">
    
    	</head>
    
    	<body>
    	<script type="text/javascript">
    
            function addBookMark() {
                document.getElementById("PageOfficeCtrl1").DataRegionList.Add( "PO_test", "测试" );
            }
    	</script>
    		<div style="width: auto; height: 700px;">
    		<%=poCtrl1.getHtmlCode("PageOfficeCtrl1")%>
    		</div>
    	</body>
    </html>
    

    启动项目直接访问.此时会提示安装插件,点击安装成功后提示注册,填写相关信息,填写注册码    I7TGD-71VV-FYD8-4NMYP   就可以打开文档.

    四、实现的效果

    1d14a576307d35ab4b128c283641ff66929.jpg

     

    具体的代码也可以参考Samples 示例中的

    6487526642442c985f4f4964f8240338639.jpg

     

    刚开始接触pageoffice的话,也可以看视频快速上手http://www.zhuozhengsoft.com/Technical/

    3c5518985d3bedcfd3e2ca09e76ca92c8c0.jpg

     

     

     

    转载于:https://my.oschina.net/u/3507515/blog/3096790

    展开全文
  • Api调用方法实现word导出

    看到很多人问如何替换书签内容,假如一个模板页,里面的表格是空的 而你需要把数据库中的内容导入进去 该怎么实现。那就是设置书签,替换的内容

    比如以上是一个模板页,而我需要导进去数据库内容,

    第一步:给需要导入数据的位置添加书签,鼠标点击那个位置 然后插入书签,起个名字,这个很重要

    第二步:依次导入书签之后,记录一下书签名字 后面代码需要用上.

    第三步:调用API搭建好,后续补充上代码

         //数据库对应的model类库ProjectWorkModel 各自各自的方法 这是我自己的方法
     public virtual void Export(ProjectWorkModel req, Stream stream, ref string fileName)
            {
                       //必不可少的Dictionary 需要存书签数据
                Dictionary<string, string> dic = new Dictionary<string, string>();
                       //赋id值 查出数据库的内容 用自己的方法也可行
                var aoData = DbContext.From<ProjectWork>().Select().Single();
                    //给书签赋类型 
               string filename = string.Empty;
                string pwname = string.Empty;
                string scale = string.Empty;
                string type = string.Empty;
                string licence = string.Empty;
                string per = string.Empty;
                string workunit = string.Empty;
                string pm = string.Empty;
                string plan = string.Empty;
                string time = string.Empty;
                string inform = string.Empty;
                if (aoData != null)
                {
                           //前面为创建书签的名字 
                            //后面aoData的是数据库数据信息 
                    fileName = aoData.PwName;
                    filename = aoData.PwName;
                    pwname = aoData.PwName;
                    scale = aoData.PwScale;
                    type = aoData.PwType;
                    licence = aoData.PwLicence;
                    per = aoData.PwPPer;
                    workunit = aoData.PwWorkUnit;
                    pm = aoData.PwPm;
                    plan = aoData.PwPlan;
                    time = Convert.ToString(aoData.PwInspectTime);
                    inform = aoData.PwInspectInform;
                }
                    //把书签数据都添加进去dic
                dic.Add("fileName", fileName);
                dic.Add("filename", filename);
                dic.Add("pwname", pwname);
                dic.Add("scale", scale);
                dic.Add("type", type);
                dic.Add("licence", licence);
                dic.Add("per", per);
                dic.Add("workunit", workunit);
                dic.Add("pm", pm);
                dic.Add("plan", plan);
                dic.Add("time", time);
                dic.Add("inform", inform);
                 //返回方法 ReportYjForm是一个方法 接着看方法
                var result = ReportYjForm(dic, stream);

    上面这个步骤主要是把书签名字和数据库数据存到dic里面

    调用方法

             public bool ReportYjForm(Dictionary<string, string> dic, Stream stream)
            {
                bool isOk = false;
                try
                {

                    //添加书签模板的位置
                    string rote = @"C:\Users\DN\Desktop\word\";

                      //模板的名字
                    string orginPath = rote + "1111.docx";

                    //需要添加nuget包 Aspose.Words
                    Document doc = new Document(orginPath);
                    DocumentBuilder builder = new DocumentBuilder(doc);

                   //循环dic的数据
                    foreach (var item in dic.Keys)
                    {

                       //移除书签,指的是把你自己设置的书签移走,然后在这个位置写上数据
                        builder.MoveToBookmark(item);

                      //书签移除后 添加上数据的数据
                        builder.Write(dic[item] ?? "");
                    }

                    //保存一下
                    doc.Save(stream, SaveFormat.Doc);
                }
                catch (Exception)
                {

                    throw;
                }
                return isOk;

            }

    不明白的教你们一个方法,就是学会打断点,进入断点之后看数据 就会明白了

    最后API接口的调用

      [HttpPost]
            public IActionResult ExportWord2([FromQuery] ProjectWordModel req)
            {
                using (var ms = new System.IO.MemoryStream())
                {

    //有标题的写标题
                    string fileName = string.Empty;

    //调用方法
                    Servicee.Export2(req, ms, ref fileName);

    //接口实现成功后记得输入id值 然后下载这个导出的文档 一下是导出文档的格式
                    return File(ms.ToArray(), "application/msword", string.Format("{0}({1}).doc", fileName, DateTime.Now.ToString("yyyy-MM-dd")));
                }
            }

    因为大部分人写法不一样,个人觉得如果了解过的话,主要掌握一个东西,就是书签写好,存入dic之后,dic里面基本都是书签和数据库数据是对应的,所以后面方法里有移除书签,写入数据库数据 。希望有人能会有收获,当然如果我叙述的不清楚 我以后继续努力

    展开全文
  • NPOI本身是没有操作Word文档中的Bookmark标签以及内容控件的接口,我通过研究NPOI中Word文档的数据结构,实现了替换标签内容(包括删除标签)、给内容控件赋值的方法,本资源内有调用demo,解决方案是用VS2017创建的...
  • QT 操作word表格 及word书签替换的资源
  • 本段代码实现了在Word VBA中TreeView控件添加文档名称、按照书签的位置顺序添加书签名称
  • 建议的块允许从 Simulink 模型转到书签定义的特定位置处的 Word 文档。... 配置 : 使用块的“掩码参数...”菜单定义Word文档书签Word文档及其书签应事先定义) 用 : 双击块。 这将在正确的位置打开 Word 文档。
  • Word2021文档插入书签交叉引用操作步骤.docx
  • Word智能书签插入工具

    2013-04-03 22:12:16
    在相应位置插入书签,然后程序里在需要导出表格的时候就调用这个模板,往插了书签的地方写文本或者图片,反向思考,这让我想到了能不能往用户给的上万个word文档里先插入书签,然后我们再写程序去直接读取插了书签的...
  • Word中,书签功能常用于查找、定位、标记特定字符或段落,对于篇幅较大的文档,此功能非常实用。下面,将介绍通过Java程序来添加及删除Word书签的方法。示例要点包括:1. 添加书签1.1 给指定段落添加书签1.2 给指定...
  • POI操作word文档,生成书签

    千次阅读 2020-11-25 10:03:03
    近期做动态的word文档生成, 需要在指定XWPFRun生成书签的功能,有两种情况: 创建新word文档时候,直接在createRun前后调用生成书签的方法 XWPFRun oldRun = runs.get(j); CTBookmark ctBookmark = paragraph....
  • java操作word书签

    2014-09-17 15:16:19
    java操作word 实现了三个功能:模板填充,模板数据提取,格式颜色验证,具体解压jar包WordTest实例,注意针对word2007以上,书签要对应
  • 图片是Word的一种特殊内容,这篇文章主要介绍了关于Python操作word文档,向里面插入图片和表格的相关内容,下面话不多说了,来一起看看详细的代码 实例代码: # -*- coding: UTF8 -*- from docx import Document ...
  • 根据WORD文档模板书签绑定数据自动生成WORD文件下载打印
  • word 书签使用两次If you work with long documents in Word and prefer not to use Master Documents or separate files, you can use bookmarks to jump to specific places in your document. 如果您在Word中...
  • 最近一个项目中需要添加一个合同信息,不仅要合同信息数据存入到数据库,还需导出一个word文档的合同用于打印。那么今天就向大家介绍在MVC中如何导出word模板,顺便附加如何将数据表导出至Excel中。 导出word实现...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,098
精华内容 4,039
关键字:

word文档怎么添加书签