旅行社电商网站怎么做编程培训就业班
- 作者: 五速梦信息网
- 时间: 2026年04月20日 10:27
当前位置: 首页 > news >正文
旅行社电商网站怎么做,编程培训就业班,设计需要看的网站有哪些,建筑类专业做教育的网站java 实现导出word 主要有一下几个知识点 1#xff0c;aspose导入 jar包 和 java编写基础代码下载使用 aspose-words jar包导入 aspose jar 包 使用 maven导入java代码编写 2#xff0c;if判断 是否显示2#xff0c;显示指定值3#xff0c;循环显示List 集合列表 使用 fore… java 实现导出word 主要有一下几个知识点 1aspose导入 jar包 和 java编写基础代码下载使用 aspose-words jar包导入 aspose jar 包 使用 maven导入java代码编写 2if判断 是否显示2显示指定值3循环显示List 集合列表 使用 foreach4显示图片 1aspose导入 jar包 和 java编写基础代码
下载使用 aspose-words jar包
我使用的是 aspose-words-23.3 版本的 之前版本的导出大量word内容容易报错 使用新版解决此问题
导入 aspose jar 包 使用 maven导入
mvn install:install-file -DgroupIdaspose-words -DartifactIdaspose-words -Dversion23.3 -Dpackagingjar -DfileG:\你的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;charsetUTF-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 MapString, 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);MapString, 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 ListentityBo entitbo;
}2if判断 是否显示
这里用到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
- 上一篇: 漯河网站开发搜索引擎推广网站
- 下一篇: 旅行社网站模版河池公司做网站
相关文章
-
漯河网站开发搜索引擎推广网站
漯河网站开发搜索引擎推广网站
- 技术栈
- 2026年04月20日
-
漯河网站建设zrgu投资者互动平台
漯河网站建设zrgu投资者互动平台
- 技术栈
- 2026年04月20日
-
漯河网站建设zrgu进入百度网首页
漯河网站建设zrgu进入百度网首页
- 技术栈
- 2026年04月20日
-
旅行社网站模版河池公司做网站
旅行社网站模版河池公司做网站
- 技术栈
- 2026年04月20日
-
旅行网站开发做网站要用什么软件图文教程
旅行网站开发做网站要用什么软件图文教程
- 技术栈
- 2026年04月20日
-
旅行网站系统wordpress 视频模板下载地址
旅行网站系统wordpress 视频模板下载地址
- 技术栈
- 2026年04月20日
