- 浏览: 1090463 次
文章分类
- 全部博客 (379)
- S2SH (16)
- stuts2 (0)
- java语言 (81)
- JSP (17)
- <html>元素 (11)
- javaweb (4)
- web容器 (3)
- ext (23)
- javaScript (48)
- ant (1)
- liferay (1)
- sql (9)
- css (42)
- 浏览器设置 (3)
- office_world (1)
- eclipse (4)
- 其它 (28)
- 操作系统 (5)
- android (6)
- Struts2 (11)
- RegEx (3)
- mysql (5)
- BigDATA (1)
- Node.js (1)
- Algorithm (10)
- Apache Spark (1)
- 数据库 (5)
- linux (2)
- git (1)
- Adobe (3)
- java语言,WebSocket (1)
- Maven (3)
- SHELL (1)
- XML (2)
- 数学 (2)
- Python (2)
- Java_mysql (1)
- ReactJS (6)
- 养生 (4)
- Docker (1)
- Protocols (3)
- java8 (2)
- 书籍 (1)
- Gradle (2)
- AngularJS (5)
- SpringMVC (2)
- SOAP (1)
- BootstrapCSS (1)
- HTTP协议 (1)
- OAuth2 (1)
最新评论
-
Lixh1986:
Java并发编程:自己动手写一把可重入锁https://blo ...
Java之多线程之Lock与Condition -
Lixh1986:
http://win.51apps.com.cn/https: ...
temp -
ztwsl:
不错,支持很好
HttpServletRequest和ServletRequest的区别 -
guodongkai:
谢谢您能将知识精华汇编总结,让初学者们从原理中学会和提高。
javaScript之function定义 -
kangwen23:
谢谢了,顶顶
struts2中的ValueStack学习
https://poi.apache.org/components/spreadsheet/quick-guide.html
1、添加依赖(Maven)
https://mvnrepository.com/artifact/org.apache.poi/poi
代码实现:
转载请注明,
原文出处:https://lixh1986.iteye.com/blog/2436814
-
1、添加依赖(Maven)
https://mvnrepository.com/artifact/org.apache.poi/poi
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.0.0</version> </dependency>
代码实现:
import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; import javax.imageio.ImageIO; import org.apache.poi.hssf.usermodel.HSSFClientAnchor; import org.apache.poi.hssf.usermodel.HSSFPatriarch; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.BorderStyle; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.FillPatternType; import org.apache.poi.ss.usermodel.Font; import org.apache.poi.ss.usermodel.HorizontalAlignment; import org.apache.poi.ss.usermodel.IndexedColors; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.VerticalAlignment; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.WorkbookUtil; // https://poi.apache.org/components/spreadsheet/quick-guide.html public class Excel_01_Basic { private static String BASE_PATH = "/Users/tiger/Documents/"; private static String FILE_NAME; private HSSFWorkbook workBook; public void createWorkBook() throws Exception{ workBook = new HSSFWorkbook(); //============ header =================================================== HSSFSheet sheet = workBook.createSheet("2019 Products"); //------------------ 设置列宽 sheet.setColumnWidth(0, 24 * 256); // 24 个字符 //-------------------- 设置行高 Row row = sheet.createRow(2); row.setHeightInPoints(30); /** * HorizontalAlignment.CENTER - one cell * HorizontalAlignment.CENTER_SELECTION - multiple cell */ createCell(workBook, row, 0, HorizontalAlignment.CENTER, VerticalAlignment.BOTTOM); createCell(workBook, row, 1, HorizontalAlignment.CENTER_SELECTION, VerticalAlignment.BOTTOM); /** * HorizontalAlignment.FILL - left * HorizontalAlignment.GENERAL - left */ createCell(workBook, row, 2, HorizontalAlignment.FILL, VerticalAlignment.CENTER); createCell(workBook, row, 3, HorizontalAlignment.GENERAL, VerticalAlignment.CENTER); createCell(workBook, row, 4, HorizontalAlignment.JUSTIFY, VerticalAlignment.JUSTIFY); createCell(workBook, row, 5, HorizontalAlignment.LEFT, VerticalAlignment.TOP); createCell(workBook, row, 6, HorizontalAlignment.RIGHT, VerticalAlignment.TOP); //------------------------------ Cell2 // merging cells int rowIndex = 4; Row row2 = sheet.createRow(rowIndex); Cell cell2 = row2.createCell(1); cell2.setCellValue("This is a test of merging"); CellStyle style2 = workBook.createCellStyle(); //------------------------------ Cell Merging sheet.addMergedRegion(new CellRangeAddress( rowIndex, //first row (0-based) rowIndex, //last row (0-based) 1, //first column (0-based) 8 //last column (0-based) )); //------------------------------- Heights row2.setHeightInPoints(141); //------------------------------- Fonts // Note, the maximum number of unique fonts in a workbook is limited to 32767. // You should re-use fonts in your applications instead of creating a font for each cell. // Font font_30 = workBook.createFont(); font_30.setFontHeightInPoints((short)30); font_30.setFontName("Courier New"); font_30.setItalic(true); font_30.setStrikeout(true); style2.setFont(font_30); cell2.setCellStyle(style2); //--------------------------------- Picture Row row0 = sheet.createRow(0); row0.setHeightInPoints(180); Row row1 = sheet.createRow(1); row1.setHeightInPoints(180); ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream(); // 先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray BufferedImage bufferImg = ImageIO.read(new File("/Users/tiger/Downloads/2018-11-28_16-56-28-node.jpg")); //将图片读到BufferedImage ImageIO.write(bufferImg, "png", byteArrayOut); // 将图片写入流中 // 利用HSSFPatriarch将图片写入EXCEL HSSFPatriarch patriarch = sheet.createDrawingPatriarch(); /** * 该构造函数有8个参数 * 前四个参数是控制图片在单元格的位置,分别是图片距离单元格left,top,right,bottom的像素距离 * 后四个参数,前连个表示图片左上角所在的columnNum和 rowNum,后天个参数对应的表示图片右下角所在的columnNum和rowNum, * excel中的columnNum和rowNum的index都是从0开始的 * */ HSSFClientAnchor anchor0 = new HSSFClientAnchor(0, 0, 950, 245 , (short) 0, 0, (short)0, 0); // 插入图片 patriarch.createPicture(anchor0, workBook.addPicture(byteArrayOut .toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG)); //图片一导出到单元格B2中 HSSFClientAnchor anchor1 = new HSSFClientAnchor(0, 0, 950, 245, (short) 0, 1, (short) 0, 1); // 插入图片 patriarch.createPicture(anchor1, workBook.addPicture(byteArrayOut .toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG)); byteArrayOut.close(); //============ footer =================================================== String safeName = WorkbookUtil.createSafeSheetName("workbook.xls"); FILE_NAME = BASE_PATH + safeName; try ( OutputStream fileOut = new FileOutputStream(FILE_NAME) ) { workBook.write(fileOut); } } /** * Creates a cell and aligns it a certain way. * * @param wb the workbook * @param row the row to create the cell in * @param column the column number to create the cell in * @param halign the horizontal alignment for the cell. * @param valign the vertical alignment for the cell. */ private void createCell(Workbook wb, Row row, int column, HorizontalAlignment halign, VerticalAlignment valign) { Cell cell = row.createCell(column); cell.setCellValue("Align It"); CellStyle cellStyle = wb.createCellStyle(); // set alignment cellStyle.setAlignment(halign); cellStyle.setVerticalAlignment(valign); // set borders cellStyle.setBorderBottom(BorderStyle.THIN); cellStyle.setBottomBorderColor(IndexedColors.BLACK.getIndex()); cellStyle.setBorderLeft(BorderStyle.THIN); cellStyle.setLeftBorderColor(IndexedColors.GREEN.getIndex()); cellStyle.setBorderRight(BorderStyle.THIN); cellStyle.setRightBorderColor(IndexedColors.BLUE.getIndex()); cellStyle.setBorderTop(BorderStyle.MEDIUM_DASHED); cellStyle.setTopBorderColor(IndexedColors.BLACK.getIndex()); // set background color // Aqua background // cellStyle.setFillBackgroundColor(IndexedColors.AQUA.getIndex()); // cellStyle.setFillPattern(FillPatternType.BIG_SPOTS); // set // Orange "foreground", foreground being the fill foreground not the font color. cellStyle.setFillForegroundColor(IndexedColors.ORANGE.getIndex()); cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); // cell.setCellStyle(cellStyle); } public static void main(String[] args) { Excel_01_Basic excelWorkBook = new Excel_01_Basic(); try { excelWorkBook.createWorkBook(); } catch (Exception e) { e.printStackTrace(); } System.out.println("excel is created successfully!"); System.out.printf("file path = %s\n", FILE_NAME); System.out.println("Working Directory = " + System.getProperty("user.dir")); } }
转载请注明,
原文出处:https://lixh1986.iteye.com/blog/2436814
-
发表评论
-
java 将文件夹所有的文件合并到指定的文件夹下
2020-06-30 19:17 974场景:将文件夹所有的文件合并到指定的文件夹下 另外:如果想效 ... -
多线程-线程池的四种创建方式
2020-04-01 18:38 406多线程-线程池的四种创建方式 https://blog.cs ... -
Java基础之:nio
2019-11-13 15:38 409一、理论讲解: 史上最强Java NIO入门:担心从入门到放弃 ... -
Java 分布式之:RPC 基本概念
2019-11-13 15:07 398转载: https://www.jianshu.com/p/ ... -
Java之 volatile 关键字原理详解
2019-11-07 15:36 439一、什么是 volatile ? ... -
POI实现excell批注背景图片(仿html浮窗显示图片)
2019-10-21 08:17 597POI实现excell批注背景图片(仿html浮窗显示图片) ... -
Java之设计模式之 Observer 观察者
2019-07-04 17:21 969观察者设计模式 Java 已经实现了该模式,并且提供了使用类 ... -
HashMap, LinkedHashMap and TreeMap
2019-03-01 11:04 622https://stackoverflow.com/a/177 ... -
数据库连接池C3P0
2018-05-29 16:50 808一、名字的由来 很多 ... -
Java8之集合(Collection)遍历 forEach()、stream()
2018-05-29 14:39 20656package java8.collections; ... -
Junit Vs main on "java.util.concurrent.Executors"
2017-11-10 16:44 730Same code with different result ... -
Java之大数据学习路线
2017-11-03 10:08 5671三个月大数据研发学习 ... -
Java中创建对象的5种方式
2017-10-26 14:21 802一、Java之5种创建对象的方式 ————————————— ... -
Log4j和Slf4j的比较
2017-06-23 12:41 1358一直搞不清 Log4j 和 SLF4j 的关系。今天才若有所 ... -
Java之Java7新特性之try资源句式
2017-04-20 14:58 5337Java之Java7新特性之try资源句式 一、【try资源 ... -
Java之 java.util.concurrent 包之ExecutorService之submit () 之 Future
2017-03-04 21:27 3769一、如何使用 ExecutorService.submit() ... -
Java之 java.util.concurrent 包之Executor与ExecutorService
2017-03-04 21:18 2638一、问题: execute() 与 submit() 的区别? ... -
JAVAEE之单用户登录
2017-02-05 11:55 1030单用户登录是系统中数据一直性的解决方案之一。 问题背景: 试 ... -
Java之多线程之线程池之线程重复使用
2017-02-04 13:33 5520一、问题背景 在使用多线程时,如果要开启一个任务,则就需要新 ... -
Java之语法之方法调用之地址传值之空对象(null)
2017-01-26 14:05 3232一、问题: public void test ...
相关推荐
Apache POI是一个开源的Java读写Excel、WORD等微软OLE2组件文档的项目。目前POI已经有了Ruby版本。 结构: •HSSF - 提供读写Microsoft Excel XLS格式档案的功能。 •XSSF - 提供读写Microsoft Excel OOXML XLSX...
JavaLib-result是开源工具JavaLib的子模块,主要是对接口结果规范处理
整合的java 库 整合的java 库 整合的java 库 整合的java 库
花了半天整理的,创建与读取EXCEL只需一行或很少量代码。 将EXCEL自动转成JAVA对象等均可以。 附件包括源码与架包,下载后放在项目中就可运行, 适当去掉我调用的异常处理即可。
将下载后的文件解包,得到JXL.JAR,放入classpath,...如果包不能正常的加载,可以把你下载好的JXL.JAR包放入D:\JAVA\jre\lib\ext中(我的是JDK1.6)就OK了。我相信在配置TOMCAT时也需要把相关的三个包放到这里面。
附件是java poi 3.17的lib库及其依赖库,全部下载引用后,可以进行excel的读写操作,无需引用其他lib库。poi-3.17适用于jdk1.7。 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft ...
Java常用lib
针对使用JAVA POI 4.0的Jar包进行了整理,提取了必要的jar整理打包LIb,并提供了 对Excel读写整理的可运行全工程。同类POI版本最高,最便宜的
JAVA 辅助文件,帮助流畅运行JAVA
通过POI将图片插入word文档中,写文字就简单了自己摸索
在平时的开发中,收集的java-jars,在这个资源中有187个javajars,提供给java开发人员使用
适用于java初学者,刚开始学时候用,尤其是netbeans,对于海外学生很实用
java2Word操作Word,比如插入图片和替换文本,压缩文件中有【lib和exe】文件夹和[java2Word]项目代码,网上都不完整,本人对其进行完全整合,新手解压后按readme.txt文件操作说明可以使用
近期项目中有需要构建一个量化分析模块,能够实现常规的...本次给客户开发的平台都是基于J2EE开发的,所以采用了TA-Lib的Java版本JAR进行开发(主要是开发人员都是Java,项目组没有Python ,否则应该使用更加方便)。
excel lib
oracle10g-java lib oracle10g-java lib
java开发整合的最全的lib 此为lib.part1 还有lib.part2
实现java读excel 功能,压缩包中带有第三方jar包,直接加到工程lib里就可以了
通过java操作excel表格的工具类库 支持Excel 95-2000的所有版本 生成Excel 2000标准格式 支持字体、数字、日期操作 能够修饰单元格属性 支持图像和图表 应该说以上功能已经能够大致满足我们的需要。最...
第一次传的时候少了实体类,这次代码传全了,连jar包都给大家准备好了,jar包导入WebRoot的WEB-INF的lib下三个类全部导入,自己准备几张图片,取好名字放在D盘,就可以用了