精华内容
下载资源
问答
  • 如何安全找回丢失数据的方法 1. 下载并安装B计划数据恢复软件。 2.... 深度扫描是绕过文件系统直接从硬盘、U盘、SD卡等设备底层恢复数据,因此使用深度恢复能找回更多... 完成数据恢复后,打开保存文档,查看保存数据。

    如何安全找回丢失数据的方法

    1. 下载并安装B计划数据恢复软件。

    2. 运行恢复软件,点击“深度扫描”。

    深度扫描是绕过文件系统直接从硬盘、U盘、SD卡等设备底层恢复数据,因此使用深度恢复能找回更多完整数据。

    同时我们要搞清楚物理硬盘和逻辑硬盘的区别。物理硬盘是硬件实体,如果你电脑上只有一块硬盘,那么他的物理硬盘只有一个;逻辑硬盘是指人为在物理上划出分区以方便存取,管理里面的文件。我们使用软件恢复数据最好对物理硬盘进行恢复,这样恢复出来的数据更加完整。

    3. 选择需要恢复的物理盘,如果是U盘请先插在电脑上,SD卡类先放进读卡器在插在电脑上,点击“下一步”。

    4. 数据恢复软件开始扫描硬盘。

    5. 深度扫描完成后,点击“文件类型”。根据文件类型可以快速找回需要的数据,节省很多时间。

    注 :最好保存扫描结果,以便以后调用。保存位置一定不要设置在丢失文件同一个盘符中,以免数据再次被覆盖,导致数据恢复不完整。

    6. 点击开始恢复按钮。

    7. 设置数据恢复保存地址,然后点击确认。保存位置一定不要设置在丢失文件同一个盘符中。

    8. 完成数据恢复后,打开保存文档,查看保存数据。

    展开全文
  • java生成word文档

    2021-02-26 10:09:04
    java生成word文档最近得到一个需求:按用户提供的模板生成分析报告,并让用户可以在网页上导出。这个功能以前没做过,但是好像听说过freemarker。于是乎,开始了我的百度之旅。一、word文档的本质我也是最近才知道,word...

    java生成word文档

    最近得到一个需求:按用户提供的模板生成分析报告,并让用户可以在网页上导出。这个功能以前没做过,但是好像听说过freemarker。于是乎,开始了我的百度之旅。

    一、word文档的本质

    我也是最近才知道,word文档的本质原来是一个压缩文件。不信你看,将.docx文件修改文件后缀为.zip

    dccc7e7e5cd7a7deadb841c75e9fd7ca.png

    然后解压缩得到了这些文件,这些就是组成word文档的所有文件。其中word文件夹下是主要内容

    a617a9a304910b8f39630e67a1c7f82e.png

    7fd96705ea33a42bb9c0bd0068dbfeb2.png

    ​其中,document.xml中是关于文档内容的设置,相当于网页里面的html文件一样。_rels文件夹下的document.xml.rels文件是图片配置信息。media文件夹下是文档中所有图片的文件,其他的应该是类似于网页里面的CSS文件,设置样式的。所以document.xml就是我们要修改的了。这样的操作就相当于网页已经编写好了,只差从后台传送数据到前端展示了。

    二、创建freemarker模板

    freemarker是一个模板引擎,百度是这样介绍的:

    FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据,并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。

    ​说白了就是跟前端页面的变量绑定是一样的,用过vuejs的都知道,前端使用“{{name}}”双括号括起来的变量可以通过传值改变页面上数据。freemarker也是这样,通过在document.xml中使用“${name}”dollar符大括号括起来的变量也可以通过传值改变模板文件内容。清楚了这点就好办了。

    将document.xml文件放到IDEA项目中的templates文件夹下,然后按Ctrl+Alt+L键格式化xml内容,将需要动态修改的地方用“${}”括起来,如下

    9c8742d8b7751b46e51c88001ae63e63.png

    有的时候变量会被拆分成两个,就要麻烦点把两个中间的多余部分全都删掉,然后在用符号括起来。这点相信大家都能理解。

    以上模板创建就结束了,是不是很简单。

    三、代码实现

    模板搞定了,怎么根据模板生成文档呢?关键步骤来了。

    1.首先我们要将模板中的变量赋值,生成新的文件。

    2.将生成的文件写入压缩文件。上面已经说了,word文档本质就是压缩文件。

    3.将.docx文档的其他内容也写入压缩文件。

    4.将压缩文件写入word文档,这就是最后生成的文档。

    导入依赖:

    org.freemarker

    freemarker

    2.3.28

    主要用到下面的工具类:

    public class FreeMarkUtils {

    private static Logger logger = LoggerFactory.getLogger(FreeMarkUtils.class);

    public static Configuration getConfiguration(){

    //创建配置实例

    Configuration configuration = new Configuration(Configuration.VERSION_2_3_28);

    //设置编码

    configuration.setDefaultEncoding("utf-8");

    configuration.setClassForTemplateLoading(FreeMarkUtils.class, "/templates");//此处设置模板存放文件夹名称

    return configuration;

    }

    /**

    * 获取模板字符串输入流

    * @param dataMap 参数,键为绑定变量名,值为变量值

    * @param templateName 模板名称

    * @return

    */

    public static ByteArrayInputStream getFreemarkerContentInputStream(Map dataMap, String templateName) {

    ByteArrayInputStream in = null;

    try {

    //获取模板

    Template template = getConfiguration().getTemplate(templateName);

    StringWriter swriter = new StringWriter();

    //生成文件

    template.process(dataMap, swriter);

    in = new ByteArrayInputStream(swriter.toString().getBytes("utf-8"));//这里一定要设置utf-8编码 否则导出的word中中文会是乱码

    } catch (Exception e) {

    e.printStackTrace();

    logger.error("模板生成错误!");

    }

    return in;

    }

    //outputStream 输出流可以自己定义 浏览器或者文件输出流

    public static void createDocx(Map dataMap, OutputStream outputStream) {

    ZipOutputStream zipout = null;

    try {

    //内容模板,传值生成新的文件输入流documentInput

    ByteArrayInputStream documentInput = FreeMarkUtils.getFreemarkerContentInputStream(dataMap, "document.xml");

    //最初设计的模板,原word文件生成File对象

    File docxFile = new File(WordUtils.class.getClassLoader().getResource("templates/demo.docx").getPath());//模板文件名称

    if (!docxFile.exists()) {

    docxFile.createNewFile();

    }

    ZipFile zipFile = new ZipFile(docxFile);//获取原word文件的zip文件对象,相当于解压缩了word文件

    Enumeration extends ZipEntry> zipEntrys = zipFile.entries();//获取压缩文件内部所有内容

    zipout = new ZipOutputStream(outputStream);

    //开始覆盖文档------------------

    int len = -1;

    byte[] buffer = new byte[1024];

    while (zipEntrys.hasMoreElements()) {//遍历zip文件内容

    ZipEntry next = zipEntrys.nextElement();

    InputStream is = zipFile.getInputStream(next);

    if (next.toString().indexOf("media") < 0) {

    zipout.putNextEntry(new ZipEntry(next.getName()));//这步相当于创建了个文件,下面是将流写入这个文件

    if ("word/document.xml".equals(next.getName())) {//如果是word/document.xml由我们输入

    if (documentInput != null) {

    while ((len = documentInput.read(buffer)) != -1) {

    zipout.write(buffer, 0, len);

    }

    documentInput.close();

    }

    } else {

    while ((len = is.read(buffer)) != -1) {

    zipout.write(buffer, 0, len);

    }

    is.close();

    }

    }else{//这里设置图片信息,针对要显示的图片

    zipout.putNextEntry(new ZipEntry(next.getName()));

    while ((len = is.read(buffer)) != -1) {

    zipout.write(buffer, 0, len);

    }

    is.close();

    }

    }

    }

    } catch (Exception e) {

    e.printStackTrace();

    logger.error("word导出失败:"+e.getStackTrace());

    }finally {

    if(zipout!=null){

    try {

    zipout.close();

    } catch (IOException e) {

    logger.error("io异常");

    }

    }

    if(outputStream!=null){

    try {

    outputStream.close();

    } catch (IOException e) {

    logger.error("io异常");

    }

    }

    }

    }

    }

    四、插入图片

    ​通过传值已经可以基本完成生成文档的功能了,但是用户还要求要在文档中生成统计分析图。知道文档本质的我马上想出了办法,但是这个就稍微有点麻烦了。刚刚说了,media文件夹下存放的是文档中所有的图片。我可以在word文档要生成统计图的地方先用图片占好位置,调好大小。然后解压后看这个图片在media文件夹中叫什么名字。最后在代码生成的时候,跳过原文件图片的写入替换成我生成的图片就可以了。核心代码如下:

    while (zipEntrys.hasMoreElements()) {

    ZipEntry next = zipEntrys.nextElement();

    InputStream is = zipFile.getInputStream(next);

    if (next.toString().indexOf("media") < 0) {

    ...省略

    }else{//这里设置图片信息,针对要显示的图片

    zipout.putNextEntry(new ZipEntry(next.getName()));

    if(next.getName().indexOf("image1.png")>0){//例如要用一张图去替换模板中的image1.png

    if(dataMap.get("image1")!=null){

    byte[] bys = Base64Util.decode(dataMap.get("image1").toString());

    zipout.write(bys,0,bys.length);

    }else{

    while ((len = is.read(buffer)) != -1) {

    zipout.write(buffer, 0, len);

    }

    is.close();

    }

    }

    }

    }

    注意:这个Base64Util是一个将图片文件转化为base64编码字符串和将base64编码字符串转换为字节数组的工具类。这里涉及到图片文件的本质,图片的本质是一个二进制文件,二进制文件可以转换成字节数组,而字节数组又可以和字符串互相转换。这个知道就好,这里我把生成的图片的字符串存入了集合中,写入文档的时候将字节数组写入。这样原图片就被替换成了生成的图片了。这里直接将新的图片文件写入也是一样的效果。

    展开全文
  • 该楼层疑似违规已被系统折叠隐藏此楼查看... import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.uti...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

    package com.xiaoye5; import java.io.File;

    import java.io.FileInputStream;

    import java.io.FileNotFoundException;

    import java.io.IOException;

    import java.io.InputStream;

    import java.util.Scanner;

    import java.util.concurrent.BlockingQueue;

    public class SearchRunable implements Runnable {

    BlockingQueue queue;

    String key;

    File file;

    public SearchRunable(String key,BlockingQueue queue){

    this.key=key;

    this.queue=queue;

    }

    public void run() {

    Boolean b=false;

    while (!b) {

    try {

    file =(File) queue.take();

    } catch (InterruptedException e) {

    e.printStackTrace();

    }

    if(file==AddRunable.file2){

    b=true;

    break;

    }

    else

    {

    try {

    searchfile(file);

    } catch (FileNotFoundException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    }

    }

    private void searchfile(File file2) throws FileNotFoundException {

    String s;

    int line=0;

    Scanner reader=new Scanner(new FileInputStream(file2));

    while(reader.hasNext()){

    line++;

    s=reader.nextLine();

    if(s.contains(key)){

    System.out.println("file所在的目录是:"+file2.getPath()+"所在的文件名是:"+file2.getName()+"所在行是:"+line);

    }

    }

    }

    }

    展开全文
  • Java读取word文档解决方案

    千次阅读 2021-03-03 12:49:33
    java读取word文档时,虽然网上介绍了很多插件poi、java2Word、jacob、itext等等,poi无法读取格式(新的API估计行好像还在处于研发阶段,不太稳定,做项目不太敢用);java2Word、jacob容易报错找不到注册,比较诡异,...

    java读取word文档时,虽然网上介绍了很多插件poi、java2Word、jacob、itext等等,poi无法读取格式(新的API估计行好像还在处于研发阶段,不太稳定,做项目不太敢用);java2Word、jacob容易报错找不到注册,比较诡异,我曾经在不同的机器上试过,操作方法完全一致,有的机器不报错,有的报错,去他们论坛找高人解决也说不出原因,项目部署用它有点玄;itxt好像写很方便但是我查了好久资料没有见到过关于读的好办法。经过一番选择还是折中点采用rtf最好,毕竟rtf是开源格式,不需要借助任何插件,只需基本IO操作外加编码转换即可。rtf格式文件表面看来和doc没啥区别,都可以用word打开,各种格式都可以设定。

    ----- 实现的功能:读取rtf模板内容(格式和文本内容),替换变化部分,形成新的rtf文档。

    ----- 实现思路:模板中固定部分手动输入,变化的部分用$info$表示,只需替换$info$即可。

    1、采用字节的形式读取rtf模板内容

    2、将可变的内容字符串转为rtf编码

    3、替换原文中的可变部分,形成新的rtf文档

    主要程序如下:

    /**

    * 将制定的字符串转换为rtf编码

    */

    public String bin2hex(String bin) {

    char[] digital = "0123456789ABCDEF".toCharArray();

    StringBuffer sb = new StringBuffer("");

    byte[] bs = bin.getBytes();

    int bit;

    for (int i = 0; i < bs.length;i++) {

    bit = (bs[i] & 0x0f0) >> 4;

    sb.append("\\'");

    sb.append(digital[bit]);

    bit = bs[i] & 0x0f;

    sb.append(digital[bit]);

    }

    return sb.toString();

    }

    /**

    * 字节形式读取rtf模板内容

    */

    public String readByteRtf(InputStream ins, String path){

    String sourcecontent = "";

    try{

    ins = new FileInputStream(path);

    byte[] b = new byte[1024];

    if (ins == null) {

    System.out.println("源模板文件不存在");

    }

    int bytesRead = 0;

    while (true) {

    bytesRead = ins.read(b, 0, 1024); // return final read bytes counts

    if(bytesRead == -1) {// end of InputStream

    System.out.println("读取模板文件结束");

    break;

    }

    sourcecontent += new String(b, 0, bytesRead); // convert to string using bytes

    }

    }catch(Exception e){

    e.printStackTrace();

    }

    }

    以上为核心代码,剩余部分就是替换,从新组装java中的String.replace(oldstr,newstr);方法可以实现,在这就不贴了。源代码部分详见附件。运行源代码前提:

    c盘创建YQ目录,将附件中"模板.rtf"复制到YQ目录之下,运行OpreatorRTF.java文件即可,就会在YQ目录下生成文件名如:21时15分19秒_cheney_记录.rtf 的文件。。。。。文件名是在程序中指定的呵呵。由于是由商业软件中拆分出的demo所以只是将自己原来的写的程序分离,合并在一个java文件中,所以有的方法在示例程序中看似多余,没有必要那么麻烦。

    对于替换部分需要循环的特例程序,我不好拆分,里面很容易暴露商业软件的东西,所以就不贴了,有需要的话可以加我QQ或者MSN,一起讨论呵呵。附件传了半天也没有传上去,没有办法只有这样搞了呵呵。模板文件附件无法存放,需要的直接联系呵呵。其实直接看以下的java程序部分,就会明白

    /**

    * 以下部分是java源代码

    */

    package com;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.FileWriter;

    import java.io.IOException;

    import java.io.InputStream;

    import java.io.PrintWriter;

    import java.text.SimpleDateFormat;

    import java.util.Date;

    public class OperatorRTF {

    /**

    * 字符串转换为rtf编码

    * @param content

    * @return

    */

    public String strToRtf(String content){

    char[] digital = "0123456789ABCDEF".toCharArray();

    StringBuffer sb = new StringBuffer("");

    byte[] bs = content.getBytes();

    int bit;

    for (int i = 0; i < bs.length; i++) {

    bit = (bs[i] & 0x0f0) >> 4;

    sb.append("\\'");

    sb.append(digital[bit]);

    bit = bs[i] & 0x0f;

    sb.append(digital[bit]);

    }

    return sb.toString();

    }

    /**

    * 替换文档的可变部分

    * @param content

    * @param replacecontent

    * @param flag

    * @return

    */

    public String replaceRTF(String content,String replacecontent,int flag){

    String rc = strToRtf(replacecontent);

    String target = "";

    /*if(flag==0){

    target = content.replace("$time$",rc);

    }*/

    if(flag==0){

    target = content.replace("$timetop$",rc);

    }

    if(flag==1){

    target = content.replace("$info$",rc);

    }

    if(flag==2){

    target = content.replace("$idea$",rc);

    }

    if(flag==3){

    target = content.replace("$advice$",rc);

    }

    if(flag==4){

    target = content.replace("$infosend$",rc);

    }

    return target;

    }

    /**

    * 获取文件路径

    * @param flag

    * @return

    */

    public String getSavePath() {

    String path = "C:\\YQ";

    File fDirecotry = new File(path);

    if (!fDirecotry.exists()) {

    fDirecotry.mkdirs();

    }

    return path;

    }

    /**

    * 半角转为全角

    */

    public String ToSBC(String input){

    char[] c = input.toCharArray();

    for (int i = 0; i < c.length; i++){

    if (c[i] == 32){

    c[i] = (char) 12288;

    continue;

    }

    if (c[i] < 127){

    c[i] = (char) (c[i] + 65248);

    }

    }

    return new String(c);

    }

    public void rgModel(String username, String content) {

    // TODO Auto-generated method stub

    /*  构建生成文件名 targetname:12时10分23秒_username_记录.rtf */

    Date current=new Date();

    SimpleDateFormat sdf=new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    String targetname = sdf.format(current).substring(11,13) + "时";

    targetname += sdf.format(current).substring(14,16) + "分";

    targetname += sdf.format(current).substring(17,19) + "秒";

    targetname += "_" + username +"_记录.rtf";

    /* 字节形式读取模板文件内容,将结果转为字符串 */

    String strpath = getSavePath();

    String sourname = strpath+"\\"+"模板.rtf";

    String sourcecontent = "";

    InputStream ins = null;

    try{

    ins = new FileInputStream(sourname);

    byte[] b = new byte[1024];

    if (ins == null) {

    System.out.println("源模板文件不存在");

    }

    int bytesRead = 0;

    while (true) {

    bytesRead = ins.read(b, 0, 1024); // return final read bytes counts

    if(bytesRead == -1) {// end of InputStream

    System.out.println("读取模板文件结束");

    break;

    }

    sourcecontent += new String(b, 0, bytesRead); // convert to string using bytes

    }

    }catch(Exception e){

    e.printStackTrace();

    }

    /* 修改变化部分 */

    String targetcontent = "";

    /**

    * 拆分之后的数组元素与模板中的标识符对应关系

    * array[0]:timetop

    * array[1]:info

    * array[2]:idea

    * array[3]:advice

    * array[4]:infosend

    */

    String array[] = content.split("~");

    /**

    * 2008年11月27日:更新模板之后时间无需自动填充

    */

    /*String nowtime = sdf.format(current).substring(0,4) + "年";

    nowtime += sdf.format(current).substring(5,7) + "月";

    nowtime += sdf.format(current).substring(8,10) + "日";*/

    for(int i=0;i

    /*if(i==0){

    targetcontent = documentDoc.replaceRTF(sourcecontent,nowtime,i);

    }else{

    targetcontent = documentDoc.replaceRTF(targetcontent,array[i-1],i);

    }*/

    if(i==0){

    targetcontent = replaceRTF(sourcecontent, array[i], i);

    }else{

    targetcontent = replaceRTF(targetcontent, array[i], i);

    }

    }

    /* 结果输出保存到文件 */

    try {

    FileWriter fw = new FileWriter(getSavePath()+"\\" + targetname,true);

    PrintWriter out = new PrintWriter(fw);

    if(targetcontent.equals("")||targetcontent==""){

    out.println(sourcecontent);

    }else{

    out.println(targetcontent);

    }

    out.close();

    fw.close();

    System.out.println(getSavePath()+"  该目录下生成文件" + targetname + " 成功");

    } catch (IOException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    public static void main(String[] args) {

    // TODO Auto-generated method stub

    OperatorRTF oRTF = new OperatorRTF();

    /**

    * 被替换内容以"~"符号分割,处理的时候将其拆分为数组即可

    */

    String content = "2008年10月12日9时-2008年10月12日6时~我们参照检验药品的方法~我们参照检验药品的方法~我们参照检验药品的方法~我们参照检验药品的方法";

    oRTF.rgModel("cheney",content);

    }

    }

    展开全文
  • 有关于word文档!任意打开一个word文档就会出现一个以~$开、打开ubuntu软件中心2、搜索 “LibreOffice 文档” 并安装 (系统默认自带.. 设置相关参数 pdf文件名 保存6、使用libreoffice打开需要制作成pdf的word文档,...
  • Python加密word文档

    多人点赞 2021-08-15 18:38:23
    本期我们需要完成一个对word文档加密的程序。在翻阅了网上一些资料和文章后,认为使用‘异或’来加密word文档是比较方便且安全性有保障的。   在此之前,我们先了解一下异或是什么。简单来说,如果a、b两个值不...
  • StringpathName="d://xxx.doc";Filefile=newFile(pathName);try{if(file.exists()){file.delete();//如果存在就删除该文本}file.createNewFile();//bw=newBufferedWriter(newOutputSt...String pathName = "d://xxx....
  • } // 输出字节流 try { out.write(ostream.toByteArray()); } catch (IOException e) { e.printStackTrace(); } try { out.close(); } catch (IOException e) { e.printStackTrace(); } try { ostream.close(); } ...
  • 实验七 Java的输入和输出(一)一、实验目的(1)通过编程和上机...三、实验作业练习0:实现dir功能练习一:字节输出流写出字节数据描述:利用字节输出流一次写一个字节的方式,向D盘的a.txt文件输出字符‘a’。练习二:...
  • 今天写了一下午的论文,用墨迹公式一直再插公式,感觉可能兼容性没有特别好,在我ctrl+s保存操作后瞬间word闪退,再打开时竟然是空白文件,并且文件的修改日期变成了刚创建文件的时候???? 一下子人都傻了,写了...
  • java怎么由html生成word,保留html样式@RequestMapping("download")public void exportWord( HttpServletRequest request, HttpServletResponse response) throws Exception {User user = AppContext.getLoginUser...
  • [数据、地址、控制] 工作过程:控制输入→读取→分析、执行→保存或输出→继续或结束 §1.2 计算机系统 二、计算机的性能指标 字长:计算机一次性处理二进制数据的位数,一般为字节的倍数 字(word):计算机数据...
  • 详细介绍了在ASP.NET 的程序中,利用数据库中的OLE 对象,实现Word文档的在线存取及预览。1、引言OLE 是Object Linking and Embedding 的缩写,即对象连接与嵌入,在数据库Access 中的OLE 对象,可以用于表格、图形...
  • Java 后台创建word 文档

    2021-02-28 19:10:12
    //1、创建临时文件夹是否存在File zipFolder = new File("F:\\压缩word");if(!zipFolder.exists()){zipFolder.mkdirs();}File wordFolder= new File("F:\\测试word");if(!wordFolder.exists()){wordFolder.mkdirs();...
  • 04-读取Word文档内容

    2021-05-07 08:24:05
    自动生成《背影》word 文档,以及自动生成日期的脚本代码已经完成。 本节的主要内容,是自动的读取 word 文档的内容,将 word 中的表格、段落文字,以及图片全部读取出来。 这里需要用到的库,是前面用到的 python-...
  • 也是因为这个PDF可以直接查看(现在浏览器基本支持了),那么我们实现Word文档在线预览,其实也是 把WORD文档 复制一份生成一份供预览的 PDF文件而已。 先看看效果: 正文 这篇实例,实现在线预览WORD文档,...
  • 新建并打开一个文件夹,在新建的文件夹里创建两个 文本文档 文件,分别粘贴保存指定内容,并按要求命名文件。最后双击“工程1.vbp”这个文件即可!第一个粘贴以下内容(不要等号分隔线),保存,并命名为 工程1....
  • } /** * 文档结尾添加一个空白页 * @throws Docx4JException */ public static void addPageBreak(File word) throws Docx4JException { WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load...
  • 用JAVA如何实现word文档在线编辑预览的功能?
  • * 作 者: shizhenwei * 历 史: (版本) 作者 时间 注释 *@paramdocxBytes docx文档字节数组 *@return*@throwsXWPFConverterException *@throwsIOException * 注:需在部署系统安装word对应的中文字体*/ public static...
  • 最近参加了一个比赛,需要生成一份word报告,查找了很多篇相关博客,都不太便于理解,最终还是非常坎坷的给整了出来,今天就详细的梳理下流程。 这里写目录标题主要分两个部分==1-首先创建一个word模板==1-1另存为....
  • springBoot上传word文档并合并图片-处理电子文档签名实现思路实践导入pom依赖包定义工具类结果 实现思路 整理一个签名模板在乙方签字处添加一个书签作为标识 遍历文档书签,匹配到签字的标识把签名的图片插入到书签...
  • 但是在使用Word文档写论文或者其他材料时,需要排版,尤其是在如何在Word文档的任意页中设置页眉和页脚,这该如何插入呢?下面就跟学习啦小编一起看看吧。Word在任意页插入页眉和页脚的步骤任意页插入页眉和页脚步骤1:...
  • 最近有一个需求,就是将服务器上的文件用字节流的方式下载到本地并且保护起来。上网查了一下,资料比较少,不过找到了其他的资料。下面是根据网上例子写了一个自己的例子,要引用第三方jar包:Spire.Doc.jar。 代码...
  • postman json格式文档word表格文档说明依赖代码 说明 json版本Collection v2.1,运行main方法输入json文件路径,生成word 参考: https://gitee.com/zhexiao/postman-to-word (解析思路). ...
  • word文档打开遇到错误以下内容已过滤百度推广复制数据后粘贴却变成了乱码怎么办?_百度知道最佳答案: 这是一个在windows 2000和windows xp系统中很常见的现象,属于设置问题。解决这个问题的方法是: (1)在复制文字前用...
  • public static void exportWord(HttpServletResponse response, String content, String... // 设置导出的word为页面视图 String str = " <!--[if gte mso 9]><xml><w:WordDocument><w:View>.
  • 将后台系统中的二维码导出到word中,数据库保存的图片的路径 效果 dependency <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version&...
  • 最近一个项目涉及到 Word 文档的读写操作,考虑相关工具: 1、Microsoft.Office.Interop.Word : 需要用到 COM 组件 2、NPOI : Java POI ...从文件流 FileStream 中读取 Word 文档,填充内容后,返回字节数组 byt..

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,644
精华内容 20,257
关键字:

word文档显示零字节