世界快资讯丨SpringBoot导出Word文档的三种方式
2023-05-04 15:39:29 来源:博客园
1、直接在Java代码里创建Word文档,设置格式样式等,然后导出。(略)
【资料图】
需要的见:https://blog.csdn.net/qq_42682745/article/details/1208674322、富文本转换后的HTML下载为Word文档。相当于把HTML转为Word导出
3、使用模板技术导出。固定格式、可以写入不同数据
其他:
springboot版本:2.7.11导出”页面视图“参考:https://my.oschina.net/u/1045509/blog/1924024xml格式化:https://tool.ip138.com/xml/HTTP下载 常用的需要设置的MIME类型.doc application/msword.dot application/msword .docx application/vnd.openxmlformats-officedocument.wordprocessingml.document.dotx application/vnd.openxmlformats-officedocument.wordprocessingml.template.docm application/vnd.ms-word.document.macroEnabled.12.dotm application/vnd.ms-word.template.macroEnabled.12 .xls application/vnd.ms-excel.xlt application/vnd.ms-excel.xla application/vnd.ms-excel .xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.xltx application/vnd.openxmlformats-officedocument.spreadsheetml.template.xlsm application/vnd.ms-excel.sheet.macroEnabled.12.xltm application/vnd.ms-excel.template.macroEnabled.12.xlam application/vnd.ms-excel.addin.macroEnabled.12.xlsb application/vnd.ms-excel.sheet.binary.macroEnabled.12 .ppt application/vnd.ms-powerpoint.pot application/vnd.ms-powerpoint.pps application/vnd.ms-powerpoint.ppa application/vnd.ms-powerpoint .pptx application/vnd.openxmlformats-officedocument.presentationml.presentation.potx application/vnd.openxmlformats-officedocument.presentationml.template.ppsx application/vnd.openxmlformats-officedocument.presentationml.slideshow.ppam application/vnd.ms-powerpoint.addin.macroEnabled.12.pptm application/vnd.ms-powerpoint.presentation.macroEnabled.12.potm application/vnd.ms-powerpoint.template.macroEnabled.12.ppsm application/vnd.ms-powerpoint.slideshow.macroEnabled.12 .mdb application/vnd.ms-access
二、富文本转换后的HTML下载为Word文档1、准备业务需求
前端使用富文本插件生成带HTML标签的word文档,然后需要下载这个word文档。每个word文档的格式是可变的扩展业务需求:
甚至可以去替换HTML的Word中的内容,然后导出需要的文档;缺点:替换字符串麻烦、而且HTML的Word的标签还需要研究。基于上述的业务需求。建议使用模板技术导出(也就是“三”)参考:
https://my.oschina.net/u/1045509/blog/1924024https://blog.csdn.net/qq_42682745/article/details/120867432导出结果
2、实现2.1、导包 org.apache.poi poi 4.1.2
2.2、HTML的word文档package com.cc.ewd.html;/** * @author CC * @since 2023/4/24 0024 */public interface HtmlConstants { /** * 普通文档(富文本生成的) */ String HTML1 = "文章标题
一、标题1" + "
我是数据:{NUM}
" + "1.1、吾问无为谓
" + "序号 " + "第一列 " + "第二列 " + "第三列 " + "第四列 " + "1 " + "11 " + "22 " + "33 " + "44 " + "2 " + "11 " + "22 " + "33 " + "44 " + "3 " + "11 " + "22 " + "33 " + "44 " + "
"; /** * 带表格文档(可以富文本生成,也可以使用word文档另存为HTML文件,然后拷出来) */ String HTML2 = "标题
一、段落1
哒哒哒哒哒哒
1.1、表格
序号
列1
列2
列3
1
11
22
33
二、段落2
";}
2.3、导出逻辑、注意事项看注释
代码:
package com.cc.ewd.web.controller;import com.cc.ewd.html.HtmlConstants;import org.apache.poi.poifs.filesystem.DirectoryEntry;import org.apache.poi.poifs.filesystem.POIFSFileSystem;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletResponse;import java.io.*;import java.net.URLEncoder;import java.nio.charset.StandardCharsets;/** 业务需求:前端使用富文本插件生成带HTML标签的word文档,然后需要下载这个word文档。 * @author CC * @since 2023/4/24 0024 */@RestController@RequestMapping("/apachePoiExport")public class ApachePoiExport { /** 将HTML内容(富文本生成的HTML)转换为Word文档并下载 * @param response HTTP响应 */ @GetMapping public void getDoc(HttpServletResponse response) { String fileName = "Word文件名"; String html = HtmlConstants.HTML2; //导出word的方法 exportWord(fileName, html, response); } /** 将HTML内容(富文本生成的HTML)转换为Word文档并下载(word2007之后的_docx)
* 参考:https://my.oschina.net/u/1045509/blog/1924024 * 参考:https://blog.csdn.net/qq_42682745/article/details/120867432 * @param fileName 文件名 * @param html 富文本生成的HTML * @param response 响应 * @since 2023/4/25 0025 * @author CC **/ public static void exportWord(String fileName, String html, HttpServletResponse response) { //0、获取富文本的html: // HTML内容必须被包装;最好设置一下编码格式 // HTML在这里设置是为了让输入的文档是以"页面视图"。而不是"Web版式" String wrappedHtml = "" + "" + "" + "" + "%s" + ""; wrappedHtml = String.format(wrappedHtml, html); //1、将HTML转换为Word文档byte数组 byte[] bytes = wrappedHtml.getBytes(StandardCharsets.UTF_8); try (POIFSFileSystem poifsFileSystem = new POIFSFileSystem(); InputStream byteInputStream = new ByteArrayInputStream(bytes);// InputStream inputStream = new BufferedInputStream(byteInputStream); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); ){ //2、使用ApachePoi转换word并设置到输出流outputStream DirectoryEntry directory = poifsFileSystem.getRoot(); //WordDocument名称不允许修改 directory.createDocument("WordDocument", byteInputStream); //将Word文档写入POIFSFileSystem对象 poifsFileSystem.writeFilesystem(outputStream); //3、①将Word文档(输出流outputStream)写入HTTP响应并下载;②也可以上传到自己的文件服务器然后返回URL给前端下载。 response.setCharacterEncoding("utf-8"); //设置content-type就是告诉浏览器这是啥玩意儿 //"octet-stream" :通用二进制流; //"msword" :Microsoft Word文档 //"vnd.openxmlformats-officedocument.wordprocessingml.document" :响应的内容类型设置为Microsoft Word 2007及更高版本的docx格式。对应的文件名后缀需要改成”docx“ response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=UTF-8"); //解决跨域不显示在header里面的问题 response.setHeader("Access-Control-Expose-Headers","Content-disposition"); //"attachment":让浏览器把响应视为附件并下载 //"inline": 让浏览器打开Word文档而不是下载它 response.setHeader("Content-disposition","attachment; filename=" + URLEncoder.encode(fileName.concat(".docx"), "UTF-8")); //BufferedOutputStream缓冲流:可以将数据缓存在内存中,以减少对底层IO的调用次数,从而提高性能。 //ServletOutputStream:用于向客户端发送数据的 //因为需要将数据写入HTTP响应,所以使用ServletOutputStream是更好的选择。 OutputStream out = new BufferedOutputStream(response.getOutputStream()); out.write(outputStream.toByteArray()); out.flush(); out.close(); } catch (Exception e) { e.printStackTrace(); } }}
三、使用模板技术导出使用Thymeleaf模板技术(推荐,也是我使用的)。也可以使用FreeMarker
Word文件的格式是固定
可以根据需求写入不同的数据
1、准备工作1.1、导包 org.springframework.boot spring-boot-starter-thymeleaf
1.2、导出文件的预处理,Thymeleaf语法使用WPS(建议使用微软的Word)新建一个需要导出Word文件这个Word文件中,需要替换的值,最好使用单独的格式。因为单独的格式在HTML或者xml中才能区分弄好Word文件,最后另存为xml格式或者HTML(单个文件)格式。就得到我们需要的xml或者HTML格式的Word文件。使用Thymeleaf语法修改xml文件
参考:Thymeleaf更多语法见下面:
https://blog.csdn.net/weixin_45203607/article/details/120251923https://blog.csdn.net/guoqigengxin/article/details/108674177普通文本
普通文本
循环-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
条件判断:if-else1.3、把处理好的xml文件放到resources下1.4、使用HTML的注意事项见附件:thymeleaf_3_wps.html
另存为后,修改HTML的编码格式:utf-8
设置值,直接可以设置在:font 标签上“页面视图“修改:参考导出页面视图见:一、导出方案2、原理可以使用xml导出、也可以使用HTML导出。导出前需要预处理xml可以使用下面的进行测试、导出。2.1、原理package com.cc.ewd.web.controller;import com.cc.ewd.vo.Msg4Vo;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import org.thymeleaf.context.Context;import org.thymeleaf.spring5.SpringTemplateEngine;import org.thymeleaf.templatemode.TemplateMode;import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;import javax.annotation.Resource;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServletResponse;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.net.URLEncoder;import java.nio.charset.StandardCharsets;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;/** thymeleaf导出的原理 * @author CC * @since 2023/4/25 0025 */@RestController@RequestMapping("/thymeleafTheoryExport")public class ThymeleafTheoryExport { @Resource private SpringTemplateEngine springTemplateEngine; /** 原理
* * - 相当于把word文件转为xml或者html,然后修改其中的值再以xml、html下载成word文件
* - 这个方法只能运行一次,因为对ClassLoaderTemplateResolver的设置是一次性的
* - 所以需要将ClassLoaderTemplateResolver设置成单例:配置Bean。
* - doc或docx的模板别使用WPS的文档,使用微软的office新建word文档,然后转为xml或html
* - 可以导出xml、也可以导出html:建议使用xml
*
*/ @GetMapping public void thymeleafExport(HttpServletResponse response){ String fileName = "第一个thy的文件"; //一、设置Thymeleaf模板 ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver(); //xml文件地址:自定义xml的文件夹:thymeleafcs/thymeleaf_1_wps.xml //xml文件地址:默认放在thymeleaf下就可以读取到 templateResolver.setPrefix("thymeleafcs/"); //设置文件的后缀 templateResolver.setSuffix(".xml");// templateResolver.setSuffix(".html"); templateResolver.setCharacterEncoding("utf-8"); //模板模式:默认是HTML。改为xml// templateResolver.setTemplateMode(TemplateMode.XML); templateResolver.setTemplateMode(TemplateMode.HTML); //加载模板 springTemplateEngine.setTemplateResolver(templateResolver); //启用Spring EL编译器 springTemplateEngine.setEnableSpringELCompiler(true); //二、设置数据(可以用map,也可以用对象) Map map = new HashMap<>(); //1普通文本参数 map.put("msg1","我是参数1111"); map.put("msg2","我是参数2222"); map.put("msg3","我是参数3333"); //2if-else参数 map.put("thIf1","1"); map.put("thIf2","2"); //3循环:构建集合参数,用于表格:可以是Map;可以是对象// List
2.2、导出后预览3、实现3.1、yml配置server: port: 5555spring: #thymeleaf的配置 thymeleaf: #关闭 Thymeleaf 的缓存开发过程中无需重启 #Thymeleaf默认会开启页面缓存,提高页面并发能力。但会导致我们修改页面不会立即被展现,因此我们关闭缓存 cache: false #设置thymeleaf页面的编码 encoding: UTF-8 #模型:XML/HTML5:HTML是默认值, 为了清楚起见, 在此处添加。 mode: XML #设置thymeleaf页面的后缀:.html是默认。 suffix: .xml #设置thymeleaf页面的存储路径 prefix: classpath:/thymeleafcs/ #使用Spring 4.2.4或更高版本启用SpringEL编译器 #可以加快大多数情况下的执行速度, 但是当一个模板中 #的表达式在不同数据类型之间重用时, #可能与特定情况不兼容, 因此该标志默认为“false” #以实现更安全的向后兼容性。 enable-spring-el-compiler: true
3.2、实现package com.cc.ewd.web.controller;import com.cc.ewd.vo.Msg4Vo;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import org.thymeleaf.context.Context;import org.thymeleaf.spring5.SpringTemplateEngine;import javax.annotation.Resource;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServletResponse;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.net.URLEncoder;import java.nio.charset.StandardCharsets;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;/** thymeleaf导出的实现 * @author CC * @since 2023/5/4 0025 */@RestController@RequestMapping("/thymeleafExport")public class ThymeleafExport { @Resource private SpringTemplateEngine springTemplateEngine; /** 原理
* * - 相当于把word文件转为xml或者html,然后修改其中的值再以xml、html下载成word文件
* - 这个方法只能运行一次,因为对ClassLoaderTemplateResolver的设置是一次性的
* - 所以需要将ClassLoaderTemplateResolver设置成单例:配置Bean。
* - doc或docx的模板别使用WPS的文档,使用微软的office新建word文档,然后转为xml或html
* - 可以导出xml、也可以导出html:建议使用xml
*
*/ @GetMapping public void thymeleafExport(HttpServletResponse response){ String fileName = "第二个thy的文件"; //一、设置数据(可以用map,也可以用对象) Map map = new HashMap<>(); //1普通文本参数 map.put("msg1","我是参数1111"); map.put("msg2","我是参数2222"); map.put("msg3","我是参数3333"); //2if-else参数 map.put("thIf1","1"); map.put("thIf2","2"); //3循环:构建集合参数,用于表格:可以是Map;可以是对象// List
3.3、不使用yml配置,使用配置bean方式可以配置不同的bean,注入使用的时候,使用我们需要的bean。实现动态使用不同类型的模板的功能。如果yml中配置了, 又配置了bean。yml中的配置会失效。其中一个bean一定要添加:@Primary。来设置默认的beanconfig配置package com.cc.ewd.config;import org.springframework.context.ApplicationContext;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.Primary;import org.thymeleaf.spring5.SpringTemplateEngine;import org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver;import org.thymeleaf.templatemode.TemplateMode;import javax.annotation.Resource;/** ThymeLeaf单独的配置 * @since 2023/5/4 0004 * @author CC **/@Configurationpublic class MyThymeLeafConfig { @Resource private ApplicationContext applicationContext; /** 自定义的bean * @return SpringTemplateEngine * @Primary :作用:指定使用名为“myTemplateEngine”的bean作为默认bean。 * 这样,当您在需要使用SpringTemplateEngine的地方没有指定@Qualifier注释时,Spring将使用该默认bean。 * 使用@Resource时,可直接设置名字。不用使用@Qualifier注释 */ @Bean(name = "myTemplateEngine") @Primary public SpringTemplateEngine myTemplateEngine(){ // SpringTemplateEngine自动应用SpringStandardDialect // 并启用Spring自己的MessageSource消息解析机制。 SpringTemplateEngine templateEngine = new SpringTemplateEngine(); SpringResourceTemplateResolver templateResolver = myTemplateResolver(); templateEngine.setTemplateResolver(templateResolver); // 使用Spring 4.2.4或更高版本启用SpringEL编译器 // 可以加快大多数情况下的执行速度, 但是当一个模板中 // 的表达式在不同数据类型之间重用时, // 可能与特定情况不兼容, 因此该标志默认为“false” // 以实现更安全的向后兼容性。 templateEngine.setEnableSpringELCompiler(true); return templateEngine; } /** 自定义配置 * @return SpringResourceTemplateResolver */ @Bean("myTemplateResolver") public SpringResourceTemplateResolver myTemplateResolver(){ // SpringResourceTemplateResolver自动与Spring自己集成 // 资源解决基础设施, 强烈推荐。 SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver(); templateResolver.setApplicationContext(this.applicationContext); templateResolver.setPrefix("classpath:thymeleafcs/"); templateResolver.setSuffix(".html"); templateResolver.setCharacterEncoding("UTF-8"); // HTML是默认值, 为了清楚起见, 在此处添加。 templateResolver.setTemplateMode(TemplateMode.HTML); return templateResolver; }//---------------------------------------------- /** 自定义的bean2 * @return SpringTemplateEngine */ @Bean(name = "myTemplateEngine2") public SpringTemplateEngine myTemplateEngine2(){ // SpringTemplateEngine自动应用SpringStandardDialect // 并启用Spring自己的MessageSource消息解析机制。 SpringTemplateEngine templateEngine = new SpringTemplateEngine(); SpringResourceTemplateResolver templateResolver = myTemplateResolver2(); templateEngine.setTemplateResolver(templateResolver); // 使用Spring 4.2.4或更高版本启用SpringEL编译器 // 可以加快大多数情况下的执行速度, 但是当一个模板中 // 的表达式在不同数据类型之间重用时, // 可能与特定情况不兼容, 因此该标志默认为“false” // 以实现更安全的向后兼容性。 templateEngine.setEnableSpringELCompiler(true); return templateEngine; } /** 自定义配置2 * @return SpringResourceTemplateResolver */ @Bean("myTemplateResolver2") public SpringResourceTemplateResolver myTemplateResolver2(){ // SpringResourceTemplateResolver自动与Spring自己集成 // 资源解决基础设施, 强烈推荐。 SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver(); templateResolver.setApplicationContext(this.applicationContext); templateResolver.setPrefix("classpath:thymeleafcs/"); templateResolver.setSuffix(".xml"); templateResolver.setCharacterEncoding("UTF-8"); // HTML是默认值, 为了清楚起见, 在此处添加。 templateResolver.setTemplateMode(TemplateMode.XML); return templateResolver; }}
使用
@Resource注入:
@Resource(name = "myTemplateEngine") private SpringTemplateEngine springTemplateEngine;
@Autowired注入:
@Autowired @Qualifier("myTemplateEngine") private SpringTemplateEngine springTemplateEngine1Html;
配置文件会失效——配置类优先
使用:根据传入的type不同。使用的模板是不同的。
package com.cc.ewd.web.controller;import com.cc.ewd.vo.Msg4Vo;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;import org.thymeleaf.context.Context;import org.thymeleaf.spring5.SpringTemplateEngine;import javax.annotation.Resource;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServletResponse;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.net.URLEncoder;import java.nio.charset.StandardCharsets;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;/** thymeleaf导出的实现 * @author CC * @since 2023/5/4 0025 */@RestController@RequestMapping("/thymeleafExport")public class ThymeleafExport {// @Resource// private SpringTemplateEngine springTemplateEngine; @Resource(name = "myTemplateEngine") private SpringTemplateEngine springTemplateEngine1Html; @Resource(name = "myTemplateEngine2") private SpringTemplateEngine springTemplateEngine2Xml; /** 原理
* * - 相当于把word文件转为xml或者html,然后修改其中的值再以xml、html下载成word文件
* - 这个方法只能运行一次,因为对ClassLoaderTemplateResolver的设置是一次性的
* - 所以需要将ClassLoaderTemplateResolver设置成单例:配置Bean。
* - doc或docx的模板别使用WPS的文档,使用微软的office新建word文档,然后转为xml或html
* - 可以导出xml、也可以导出html:建议使用xml
*
*/ @GetMapping public void thymeleafExport(@RequestParam String type, HttpServletResponse response){ String fileName = "第二个thy的文件"; //一、设置数据(可以用map,也可以用对象) Map map = new HashMap<>(); //1普通文本参数 map.put("msg1","我是参数1111"); map.put("msg2","我是参数2222"); map.put("msg3","我是参数3333"); //2if-else参数 map.put("thIf1","1"); map.put("thIf2","2"); //3循环:构建集合参数,用于表格:可以是Map;可以是对象// List
四、总结甚至可以结合Thymeleaf模板技术和ApachePoi技术。先使用Thymeleaf模板技术替换Word文档中的值。然后得到完整的HTML格式的Word文档然后使用ApachePoi导出HTML格式的Word文档文中使用到的文档:https://files.cnblogs.com/files/blogs/787464/SpringBoot导出Word文档的三种方式-文档.rar?t=1683184411&download=true
关键词:
为你推荐
-
世界快资讯丨SpringBoot导出Word文档的三种方式
-
文教园一小教育集团:五育并举绽华彩 阳光运动强体魄
-
作文掌声开头和结尾(推荐3篇)
-
每日短讯:武汉优品壹创科技有限公司_关于武汉优品壹创科技有限公司简述
-
世界观焦点:微软加快自研Arm芯片,对标苹果M系列
-
美联储宣布加息25个基点 鲍威尔:没有做出暂停加息的决定_世界热消息
-
李徽徽:超级央行“打太极” 全球市场躁动
-
每日焦点!北京首批7项市级疏堵工程完工
-
黑龙江省七台河市市场监管局开展儿童化妆品专项整治行动-世界快播
-
正方晶氧化锆(关于正方晶氧化锆介绍)
-
全球新资讯:人福医药(600079):日K线呈现-“曙光初现”形态 后市看多(05-04)
-
世联赛主力阵容基本确定,两人或成为漏洞,朱婷大概率缺席 热点在线
-
全球速讯:家电行业需要从“伪智能”迈向“真智能”
-
端午节假期后需连上6天班 打工人戴上了痛苦面具!
-
世界快播:天力锂能:融资净买入90.5万元,融资余额5433.63万元(04-28)
-
抢抓F1摩托艇世锦赛举办契机 郑东新区签约引进24个重点项目投资110亿元 全球今头条
-
从捡鱼工到互联网招聘师 小伙一年帮1万名蓝领找到工作 环球今亮点
-
联合国官员呼吁苏丹冲突双方保障人道主义救援工作
-
2023上海车展:i7 M70L体验 1100牛米还带M的宝马电动车 环球快播
-
焦点观察:今年首场天狗吃月亮将登场,究竟是怎么一回事?
推荐内容
- 世界快资讯丨SpringBoot导出Word文档的三种方式
- 文教园一小教育集团:五育并举绽华彩 阳光运动强
- 作文掌声开头和结尾(推荐3篇)
- 每日短讯:武汉优品壹创科技有限公司_关于武汉优
- 世界观焦点:微软加快自研Arm芯片,对标苹果M系列
- 美联储宣布加息25个基点 鲍威尔:没有做出暂停加
- 李徽徽:超级央行“打太极” 全球市场躁动
- 每日焦点!北京首批7项市级疏堵工程完工
- 黑龙江省七台河市市场监管局开展儿童化妆品专项整
- 正方晶氧化锆(关于正方晶氧化锆介绍)
- 全球新资讯:人福医药(600079):日K线呈现-“曙
- 世联赛主力阵容基本确定,两人或成为漏洞,朱婷大
- 全球速讯:家电行业需要从“伪智能”迈向“真智能
- 端午节假期后需连上6天班 打工人戴上了痛苦面具!
- 世界快播:天力锂能:融资净买入90.5万元,融资余
- 抢抓F1摩托艇世锦赛举办契机 郑东新区签约引进24
- 从捡鱼工到互联网招聘师 小伙一年帮1万名蓝领找
- 联合国官员呼吁苏丹冲突双方保障人道主义救援工作
- 2023上海车展:i7 M70L体验 1100牛米还带M的宝
- 焦点观察:今年首场天狗吃月亮将登场,究竟是怎么
- mp5电影下载格式_mp5电影下载
- 风起于青萍之末_风起于青萍之末这句话是什么意思
- 南昌高新区:打造生态廊道 建设高品质生活之城
- 中国主战坦99a多少钱一辆_99式坦克|全球资讯
- 俄方:有无人机袭击克里姆林宫 莫斯科已禁飞无人
- 今日黄金多少钱一克?2020年今日黄金回收价格
- 地球上原本没有人,第一个人从何而来?一个简单的
- 微资讯!山东聊城一化工厂爆炸着火致9人死亡、1人
- 全球今头条!汇丰控股(00005.HK)5月3日收盘涨0.
- 热议:苏洵苏辙苏轼三父子被称为_苏洵苏辙苏轼三
- 挖泥船输泥管球形接头
- 新车 | 东风纳米代号S31车型首台白车身下线,或
- 异地公积金在泉州贷款需要什么条件 环球新动态
- 当前动态:受地震影响的云南大瑞铁路大保段恢复运行
- 观热点:大兴国际机场临空经济区最大会展项目精彩
- 天天速看:“五一”假期,干部在包间喝酒划拳被抓
- 辽篮最新消息!郭艾伦带伤出战被驳回,杨鸣启用小
- 世界快资讯:《咒术回战》第7话:五条悟眼罩一摘
- 文旅活动扎堆首钢园 潮品亮相国企消费季
- 乐茉化妆品是品牌吗?_乐茉
油气
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
经济
-
中新网通辽10月18日电 (记者 张林虎)18日,记者从内蒙古自治区通辽市奈曼旗公安局获悉,国家一级保护动物--梅花鹿误入当地村民羊群,
-
中新网杭州10月18日电 (王题题 胡燕婕)云天收夏色,浅秋正渐浓。10月18日,浙江杭州市西湖游船有限公司推出的惠民多站点“西湖环湖游
-
中新网福州10月18日电 (记者 龙敏 王东明)福州市晋安区官方18日晚间通报,18日14时47分,晋安区岳峰镇化工路爱摩轮商业广场项目摩天轮安
-
中新网兰州10月18日电 (闫姣 艾庆龙 吉翔)“红山白土头,黄河向西流。”不少人疑问,天下黄河向东流,为何甘肃永靖县这段黄河却向西
-
中新网北京10月18日电 《清华城市健康设施指数》18日在北京发布。报告成果显示,城市健康设施指数领先城市以中心城市和东部沿海城市