当前位置: 首页 > news >正文

深圳建网站公司dw做的网站怎么被别人打开

深圳建网站公司,dw做的网站怎么被别人打开,中国住房建设部网站,工商登记注册网java 实现导出word 主要有一下几个知识点 1,aspose导入 jar包 和 java编写基础代码下载使用 aspose-words jar包导入 aspose jar 包 使用 maven导入java代码编写 2,if判断 是否显示2,显示指定值3,循环显示List 集合列表 使用 fore…

java 实现导出word 主要有一下几个知识点

  • 1,aspose导入 jar包 和 java编写基础代码
    • 下载使用 aspose-words jar包
    • 导入 aspose jar 包 使用 maven导入
    • java代码编写
  • 2,if判断 是否显示
  • 2,显示指定值
  • 3,循环显示List 集合列表 使用 foreach
  • 4,显示图片 ,

1,aspose导入 jar包 和 java编写基础代码

下载使用 aspose-words jar包

我使用的是 aspose-words-23.3 版本的
之前版本的导出大量word内容容易报错 使用新版解决此问题

导入 aspose jar 包 使用 maven导入

mvn install:install-file -DgroupId=aspose-words -DartifactId=aspose-words -Dversion=23.3 -Dpackaging=jar -Dfile=G:\你的windows电脑的jar包路径\aspose-word\aspose-words-23.3-jdk16.jar

java代码编写

首选新建一个工具类方法

public class QualityConstants {/*** 质量检测 的督导事项id*/public static final int EVENTID = 12;/*** 数字0*/public static final int NUM_ZERO = 0;/*** 数字1*/public static final int NUM_ONE = 1;/*** 数字2*/public static final int NUM_TWO = 2;/*** 数字-1*/public static final int NUM_MINUS_1 = -1;/*** 字节大小512*/public static final int BYTE_512 = 512;/*** 500错误编码*/public static final int CODE_500 = 500;/*** 500错误提示信息 - 状态非法*/public static final String CODE_500_MSG_1 = "状态非法!";/*** 500错误提示信息 - 非督导用户不允许查看质量检测记录*/public static final String CODE_500_MSG_2 = "非督导用户不允许查看质量检测记录!";/*** 500错误提示信息 - 这条质量监测已经完成!无法修改*/public static final String CODE_500_MSG_3 = "这条质量监测已经完成!无法修改!";/*** 500错误提示信息 - 提交失败,材料上传不能为空*/public static final String CODE_500_MSG_4 = "提交失败,材料上传不能为空";/*** 500错误提示信息 - 提交失败,请稍后重试或联系管理员*/public static final String CODE_500_MSG_5 = "提交失败,请稍后重试或联系管理员!";/*** 500错误提示信息 - 提交失败,意见反馈不能为空*/public static final String CODE_500_MSG_6 = "提交失败,意见反馈不能为空!";/*** 405错误编码*/public static final int CODE_405 = 405;/*** 405错误提示信息 - 该信息只允许督导查看*/public static final String CODE_405_MSG_1 = "该信息只允许督导查看!";/*** 200成功编码*/public static final int CODE_200 = 200;/*** 200成功提示信息 - 该信息只允许督导查看*/public static final String CODE_200_MSG_1 = "提交成功!";/*** 错误提示信息 - 尚未选择记录*/public static final String DELETE_FAIRURE_MSG = "删除失败,尚未选择记录!";/*** 错误提示信息 - 尚未选择记录*/public static final String NO_RECORD_SELECTED = "尚未选择记录!";/*** 字符编码utf-8*/public static final String UTF_8 = "utf-8";/*** 默认pid*/public static final int PID = 0;/*** 默认层级*/public static final int DEFUALT_LAYER = 1;/*** 不适当最低得分*/public static final Integer MIN_SCORE = 1;/*** 优秀最高得分*/public static final Integer MAX_SCORE = 7;/*** map的hash初始值*/public static final int HASH_MAP_INIT_VALUE = 32;/*** 全园平均分*/public final static String WHOLE_AVERAGE = "全园平均分";/*** 查询失败*/public final static String QUERY_FAIRURE = "查询失败";/*** 操作成功*/public final static String SUCCESS_MSG = "操作成功!";/*** 操作失败*/public final static String FARIURE_MSG = "操作失败!";/*** 导出失败*/public final static String FARIURE_EXPORT = "导出失败!";/*** 请求头 - 文档*/public final static String CONTENT_TYPE_WORD = "application/msword";/*** 请求头 - 下载*/public final static String CONTENT_TYPE_DOWNLOAD = "application/x-download";/*** 请求头 - 二进制文件*/public final static String CONTENT_TYPE_STEAM = "application/octet-stream;charset=UTF-8";/*** 请求头*/public final static String USER_AGENT = "User-Agent";/*** 请求头*/public final static String CONTENT_TYPE = "Content-Type";/*** 连接*/public final static String CONNECTION = "Connection";/*** 关闭连接*/public final static String CLOSE = "close";/*** 连接*/public final static String ACCESS_CONTROL_ALLOW_ORIGIN = "Access-Control-Allow-Origin";/*** 连接*/public final static String CONTENT_DISPOSITION = "Content-Disposition";/*** 浏览器 - ie*/public final static String MSIE = "MSIE";/*** 浏览器 - Firefox*/public final static String FIREFOX = "Firefox";/*** 填写报告的step*/public final static String MODULE_STEP3_REPORT = "qualityreport";/*** 督导下园核实的材料*/public final static String MODULE_STEP1_MATERIAL = "qualitymetrail";/*** 数字3*/public final static int NUM_3 = 3;/*** 数字4*/public final static int NUM_4 = 4;/*** 数字5*/public final static int NUM_5 = 5;/*** 数字6*/public final static int NUM_6 = 6;/*** 数字7*/public final static int NUM_7 = 7;/*** 数字8*/public final static int NUM_8 = 8;/*** 数字9*/public final static int NUM_9 = 9;/*** 数字10*/public final static int NUM_10 = 10;/*** 数字11*/public final static int NUM_11 = 11;/*** 数字12*/public final static int NUM_12 = 12;/*** 数字13*/public final static int NUM_13 = 13;/*** 数字14*/public final static int NUM_14 = 14;/*** 数字15*/public final static int NUM_15 = 15;/*** 数字16*/public final static int NUM_16 = 16;/*** 数字17*/public final static int NUM_17 = 17;/*** 数字18*/public final static int NUM_18 = 18;/*** 数字19*/public final static int NUM_19 = 19;/*** 数字20*/public final static int NUM_20 = 20;/*** 格式化数字*/public final static String DECIMAL_Format = "######.00";}

以下为实现post导出 并且删除新生成的文件代码 需要借助工具类
传入map json的方式获取参数

@PostMapping("/Export")@ResponseBodypublic void ExportWord(@RequestBody Map<String, Object> json, HttpServletRequest request, HttpServletResponse response) throws Exception {String filePath = "/xxx/xxx/xx/要生成的临时word地址和名称.docx";String tempName = "/xxx/xxx/xx/你的word模版地址和名称.docx";com.aspose.words.Document doc = new com.aspose.words.Document(tempName);Map<String, Object> map = new HashMap<>();XXX  XX= new XXX();  //XXX   为你的 word要的数据的实体类 自己建 这个XXX 包含word所有需要的字段 图片 和循环体XX.setTitle(json.get("title").toString());  //标题
//        图片 base64  传入BufferedImage image = decodeBase64Image(json.get("image").toString()); //json格式传入的base64图片/**** 这里获取图片可以用路径的方式 不使用base64传进来*///BufferedImage image =  ImageIO.read(new FileInputStream("/home/123.png"));//BufferedImage bufferedImage = Utils.resizeBufferedImage(image, 100, 100, false);scivalword.setImg(image );setParams(doc, scivalword);doc.save(filePath);File file = new File(filePath);//world输出流操作InputStream fin = null;OutputStream out = null;try {fin = new FileInputStream(file);response.setCharacterEncoding(QualityConstants.UTF_8);response.setContentType(QualityConstants.CONTENT_TYPE_WORD);String filename = "demo";String agent = request.getHeader(QualityConstants.USER_AGENT);String filenameEncoder = "";// 根据不同的浏览器进行不同的判断if (agent.contains(QualityConstants.MSIE)) {// IE浏览器filenameEncoder = URLEncoder.encode(filename, QualityConstants.UTF_8);filenameEncoder = filenameEncoder.replace("+", " ");} else if (agent.contains(QualityConstants.FIREFOX)) {// 火狐浏览器BASE64Encoder base64Encoder = new BASE64Encoder();filenameEncoder = "=?utf-8?B?" + base64Encoder.encode(filename.getBytes(StandardCharsets.UTF_8)) + "?=";} else {// 其它浏览器filenameEncoder = URLEncoder.encode(filename, QualityConstants.UTF_8);}response.setHeader(QualityConstants.ACCESS_CONTROL_ALLOW_ORIGIN, "*");//所有域都可以跨response.setHeader(QualityConstants.CONTENT_TYPE, QualityConstants.CONTENT_TYPE_STEAM);//二进制  流文件response.setHeader(QualityConstants.CONTENT_DISPOSITION, "attachment;filename=" + filenameEncoder + ".doc");//下载及其文件名response.setHeader(QualityConstants.CONNECTION, QualityConstants.CLOSE);//关闭请求头连接//设置文件在浏览器打开还是下载response.setContentType(QualityConstants.CONTENT_TYPE_DOWNLOAD);out = response.getOutputStream();byte[] buffer = new byte[QualityConstants.BYTE_512];int bytesToRead = QualityConstants.NUM_MINUS_1;// 通过循环将读入的Word文件的内容输出到浏览器中while ((bytesToRead = fin.read(buffer)) != QualityConstants.NUM_MINUS_1) {out.write(buffer, QualityConstants.NUM_ZERO, bytesToRead);}} catch (Exception e) {System.out.println("导出异常");} finally {try {//这里最后删除文件if (fin != null) {fin.close();}if (out != null) {out.flush();out.close();}if (file != null) {file.delete();}} catch (IOException e) {System.out.println("导出异常");}}}private static void setParams(Document doc, XXX vo) throws Exception { //XXX   为你的 word要的数据的实体类 自己建 这个XXX 包含word所有需要的字段 图片 和循环体ReportingEngine engines = new ReportingEngine();engines.getKnownTypes().add(xxxxx.class);//加入实体类类型 - 在foreach中用到 engines.buildReport(doc, new Object[]{vo}, new String[]{"st"});}//获取当前日期的年月日public static String getCurrentDate() {Date currentDate = new Date();SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年 MM月dd日");return dateFormat.format(currentDate);}
//把字符串类型的base64图片转换成IO流给buffere public static BufferedImage decodeBase64Image(String base64Image) {try {byte[] imageData = Base64.getDecoder().decode(base64Image);ByteArrayInputStream inputStream = new ByteArrayInputStream(imageData);return ImageIO.read(inputStream);} catch (Exception e) {e.printStackTrace();return null;}}

上面的代码中包含 图片 和实体类 for循环就是要在你的实体类里面插入一个 list 然后往这个list里面插入值以后
在这里插入图片描述
这里需要加入你要插入循环的实体类 给word里面获取实体类使用

在这里插入图片描述
比如我的实体类里面就有这些list 那么这些list里面的 bo就需要插入到上面的图片里面

上的代码中
XXX 为你的实体类自己创建 可以创建一个 默认的 比如

public class XXX{//注意 get set 方法一定要有private String title;private BufferedImage img;private List<entityBo> entitbo;
}

2,if判断 是否显示

这里用到word里面的if判断了
如图
在这里插入图片描述

<<if [st.getTitle() != null ]>> <<[st.getTitle()]>> <>
这里就判断了如果 传入的title不为空的情况下再进行显示

2,显示指定值

在这里插入图片描述
直接使用 就可以显示值

3,循环显示List 集合列表 使用 foreach

在这里插入图片描述

这里用到了 entitylist 进行了for循环 xxxx为
在这里插入图片描述
这里显示的实体类 必须在这里加入 否则会报错和无法使用
注意 开始 foreach就要有结束的 foreach 相对应的都是 类似于 xml格式的 word导出

注意 “String[]{“st”}” st表示在word里面的初始名称 调用关键字 比如你的实体类里面有title的字段 就用 st.getTitle() 就可以调用 如果是list就是 st.getList() 就可以调用

4,显示图片 ,

显示图片就是你的baset64复值给实体类传入以后 打开你的 word
在这里插入图片描述
点击文本框
插入到里面 在里面写入bo的img名称即可
如图
在这里插入图片描述
如果不想要外边框可以使用
在这里插入图片描述
属性里面的内容设置成无即可

附赠一个 word
在这里插入图片描述


http://www.yayakq.cn/news/226659/

相关文章:

  • 模板包下载网站最强大的搜索引擎
  • 协会秘书处工作建设 网站沈阳 网站开发制作
  • 哈尔滨做网站免费引流推广工具
  • 网站套利怎么做网站建设好后怎样形成app
  • 网站小图片素材应用宝下载
  • 中国最大的免费素材网站上海徐汇做网站
  • 网站自动更新文章最好的做法是()
  • 无锡seo公司网站广州海珠区租房子一般多少钱
  • 惠州h5网站建设cms全称
  • 微信小网站怎么做搭建自己微信网站
  • 中国网站建设公司有哪些内容个人网站建设可行性分析报告
  • 广东网站制作公司wordpress 二栏
  • 网站开发知乎谢闵行
  • ic外贸网站建设梧州论坛 掌上红豆
  • 合肥模板网站建设收费首页2免费空间
  • 企业网站内容的制作手机电脑同步网站开发
  • 工信部网站备案方法网站开发难题
  • qq网站空间赞公司的分类
  • 深圳做网站的公司排行枣庄网络推广
  • 自个做网站教程合肥企业宣传片制作公司
  • 中国机械加工网官方网站html网站设计论文
  • 中跃建设集团有限公司网站meetsh网站建设
  • 网站 微信公众号 建设方案盘锦做网站
  • 网站建设先有域名然后呢称多网站建设
  • 免费推广网站大全蜘蛛抓取网站模块原理
  • 做 爱 网站小视频在线观看交换免费连接
  • 怎么看别人网站是怎么做的网站优化怎么做ppt
  • 安庆建设网站快速搭建网站2020
  • 学习网站建设0学起项目网络图经常被称为什么
  • 360的网站排名怎么做郑州网站建设及优化