相关文章推荐
从未表白的毛衣  ·  java poi ...·  4 天前    · 
精明的书包  ·  mongodb多层嵌套查询 ...·  1 年前    · 
俊逸的热带鱼  ·  SQLite Database ...·  1 年前    · 
博学的警车  ·  c++ - Opening fstream ...·  1 年前    · 
public class WordDoughnutChart implements WordChart {
	public void bulider(XWPFChart chart, ChartOption options) {
		String sheetName = "sheet0";
		XSSFWorkbook workbook = null;
		try {
			workbook = chart.getWorkbook();
		} catch (Exception e) {
			e.printStackTrace();
			return;
		XSSFSheet sheet = workbook.getSheet(sheetName);
		int rowIndex = this.refreshSheet(sheet, options);
		// 图例
		if(options.isShowLegend()) {
			XDDFChartLegend legend = chart.getOrAddLegend();
			legend.setPosition(options.getLegendPosition());
		XDDFDoughnutChartData doughnut = (XDDFDoughnutChartData) chart.createData(ChartTypes.DOUGHNUT, null, null);
		doughnut.setHoleSize(70);
		XDDFCategoryDataSource categorySource = XDDFDataSourcesFactory.fromStringCellRange(sheet,new CellRangeAddress(1, rowIndex - 1, 0, 0));
		XDDFNumericalDataSource<Double> valueSource = XDDFDataSourcesFactory.fromNumericCellRange(sheet,new CellRangeAddress(1, rowIndex - 1, 1, 1));
		XDDFChartData.Series series = doughnut.addSeries(categorySource, valueSource);
		chart.plot(doughnut);
		// 自定义环形图颜色
		CTChart c = chart.getCTChart();
		if (c.getAutoTitleDeleted() == null) {
			c.addNewAutoTitleDeleted();
	    c.getAutoTitleDeleted().setVal(false);
	    int pointCount = series.getCategoryData().getPointCount();
        CTPieSer ser = c.getPlotArea().getDoughnutChartArray(0).getSerArray(0);
        for (int p = 0; p < pointCount; p++) {
    	  ser.addNewDPt().addNewIdx().setVal(p);
    	  ser.getDPtArray(p).addNewSpPr().addNewSolidFill().addNewSrgbClr().setVal(options.getColor(p));

 本功能所有代码实现,摘自开源项目demo-ureport: 基于spring boot + Vue2 + Element UI + Echarts 重构ureport2中国式复杂报表设计器开源项目目录src/main/java/com/bstek/ureport/export/word/chart下 

✅ Java 开发工程师,从事 Web 应用程序的研发,擅长 Spring、SpringBoot 等技术。 ✅ 热爱编程,业余时间学习新知识,通过 CSDN 记录学习心得和笔记内容。 12-25 平时的项目中,我们可能需要做大量的报告。而这些报告中,有些是固定的格式,有些是需要自定义模板来生成。如果是固定的形式的,那么相对而言是比较好做的,但要是根据模板来生成报告,比如:wordExcel或PDF。这样的话,可能需要我们花点时间去解决了。这篇博客主要是带领大家学习一下,如何用poi技术来实现生成word报告。 我们知道,poi的技术可以做出wordExcel、...
本文参考地址:https://blog.csdn.net/wangxiaoyingWXY/article/details/95377533 在参考文章的基础上,增加了扩展。感谢被参考的老哥。 代码直接从日记中复制过来的,不方便复制的可以私信发示例代码,不知道怎么上传附件了。 代码有的地方写的不合理或者错误的,请原谅没有检查仔细; 说明:在poi3.x的版本中,没有对表的支持,至少目前为止没...
(含有文字,像) 导出word效果如下: 思路:建立预期导出word效果,设置为模板,然后填充对应信息,注意,加粗,居中等一些片,文字格式预先设置好。然后进行文字或者片填充即可; 1.将word文件另存为xml格式; 2.将文件后缀xml文件打开,修改模板对应填充信息如下,然后修改后缀名为.ftl 以上模板准备完毕。 3.代码: @PostMapping(value = "/exportDIY") @ResponseBody @ApiOperat
最近项目中需要用到数据的导出到Word,本在项目中使用POI将数据导入到Word,和Excel导出类似,先将jar包导入进去(我这里就省去导jar包啦),我直接上实现过程吧! 1、导入POI jar包; 2、创建新的Word模板,如下: 3、JSP页面按钮定义如下: 导出Word 4、JS中点击事件(包括参数传递、发送请求)代码如下: /* 导出Word */ function
Map<String, Object> map = new HashMap<>(); map.put("name", "李四1"); map.put("age", 213123123); XWPFDocument docume. 一个关于线程的经典面试题,要求用三个线程,按顺序打印1,2,3,4,5.... 71,72,73,74, 75. 线程1先打印1,2,3,4,5, * 然后是线程2打印6,7,8,9,10, 然后是 CSDN-Ada助手: 恭喜您发布了第四篇博客,主题非常有趣!生成饼图的方法很实用,让读者可以更加直观地了解数据。希望您能继续保持创作的热情,为我们带来更多有价值的技术分享。同时,也建议您可以考虑探讨一些与其它POI功能的结合使用,让读者可以更全面地了解POI的使用技巧。期待您的下一篇作品! CSDN 会根据你创作的前四篇博客的质量,给予优秀的博主博客红包奖励。请关注 https://bbs.csdn.net/forums/csdnnews?typeId=116148&utm_source=csdn_ai_ada_blog_reply4 看奖励名单。 POI WORD生成散点图 CSDN-Ada助手: 恭喜您写出了这篇有趣的博客,介绍了POI WORD生成散点图的方法。非常感谢您分享这样的知识和经验,让我们学习到了新的技能。希望您能够继续坚持创作,分享更多实用的技巧和经验。如果可以的话,可以考虑写一篇关于POI WORD生成柱状图或折线图的博客,让我们更全面地了解这个工具的应用。谢谢您的分享! CSDN 正在通过评论红包奖励优秀博客,请看红包流:https://bbs.csdn.net/?type=4&header=0&utm_source=csdn_ai_ada_blog_reply3,我们会奖励持续创作和学习的博主,请看:https://bbs.csdn.net/forums/csdnnews?typeId=116148&utm_source=csdn_ai_ada_blog_reply3 POI 生成气泡图 CSDN-Ada助手: 非常感谢您分享的这篇博客,POI生成气泡图的方法对于我这个初学者来说非常有用。非常鼓励您继续创作,分享更多的经验和技巧。 在该博文的扩展知识和技能方面,您可以考虑介绍如何使用POI生成其他类型的图表,例如柱状图、折线图等等。此外,您也可以介绍如何使用POI进行复杂的文档处理操作,例如页眉页脚、表格处理、图像处理等等。感谢您的分享,期待您的下一篇博客。 如何写出更高质量的博客,请看该博主的分享:https://blog.csdn.net/lmy_520/article/details/128686434?utm_source=csdn_ai_ada_blog_reply2