- 浏览: 1112653 次
文章分类
- 全部博客 (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 1064场景:将文件夹所有的文件合并到指定的文件夹下 另外:如果想效 ... -
多线程-线程池的四种创建方式
2020-04-01 18:38 488多线程-线程池的四种创建方式 https://blog.cs ... -
Java基础之:nio
2019-11-13 15:38 484一、理论讲解: 史上最强Java NIO入门:担心从入门到放弃 ... -
Java 分布式之:RPC 基本概念
2019-11-13 15:07 462转载: https://www.jianshu.com/p/ ... -
Java之 volatile 关键字原理详解
2019-11-07 15:36 548一、什么是 volatile ? ... -
POI实现excell批注背景图片(仿html浮窗显示图片)
2019-10-21 08:17 693POI实现excell批注背景图片(仿html浮窗显示图片) ... -
Java之设计模式之 Observer 观察者
2019-07-04 17:21 1070观察者设计模式 Java 已经实现了该模式,并且提供了使用类 ... -
HashMap, LinkedHashMap and TreeMap
2019-03-01 11:04 680https://stackoverflow.com/a/177 ... -
数据库连接池C3P0
2018-05-29 16:50 897一、名字的由来 很多 ... -
Java8之集合(Collection)遍历 forEach()、stream()
2018-05-29 14:39 20750package java8.collections; ... -
Junit Vs main on "java.util.concurrent.Executors"
2017-11-10 16:44 816Same code with different result ... -
Java之大数据学习路线
2017-11-03 10:08 5722三个月大数据研发学习 ... -
Java中创建对象的5种方式
2017-10-26 14:21 842一、Java之5种创建对象的方式 ————————————— ... -
Log4j和Slf4j的比较
2017-06-23 12:41 1411一直搞不清 Log4j 和 SLF4j 的关系。今天才若有所 ... -
Java之Java7新特性之try资源句式
2017-04-20 14:58 5385Java之Java7新特性之try资源句式 一、【try资源 ... -
Java之 java.util.concurrent 包之ExecutorService之submit () 之 Future
2017-03-04 21:27 3834一、如何使用 ExecutorService.submit() ... -
Java之 java.util.concurrent 包之Executor与ExecutorService
2017-03-04 21:18 2704一、问题: execute() 与 submit() 的区别? ... -
JAVAEE之单用户登录
2017-02-05 11:55 1058单用户登录是系统中数据一直性的解决方案之一。 问题背景: 试 ... -
Java之多线程之线程池之线程重复使用
2017-02-04 13:33 5568一、问题背景 在使用多线程时,如果要开启一个任务,则就需要新 ... -
Java之语法之方法调用之地址传值之空对象(null)
2017-01-26 14:05 3323一、问题: public void test ...
相关推荐
在Java中,如果你需要在Word文档中插入图片,POI库提供了解决方案。这个过程涉及到对Word文档的内部结构有深入的理解,包括其XML表示形式,以及如何通过API来操作这些元素。 首先,我们需要导入必要的库,包括POI的...
例如,通过使用POI库,你可以创建一个新的Excel工作簿,添加工作表,插入数据,设置单元格样式,应用公式,甚至处理图表和图片。同时,也可以读取已存在的Excel文件,提取数据,进行分析,然后将结果写回Excel或保存...
本学习笔记将深入探讨如何使用Apache POI库来实现Java对Excel的高效操作。 Apache POI是一个开源项目,提供了读写Microsoft Office格式文档的能力,包括Excel(.xlsx和.xls)。在Java中,我们可以借助POI库来创建、...
为了在Java中操作Excel,我们需要引入特定的库,这些库通常以JAR(Java Archive)文件的形式存在。标题“Java操作Excel所需的jar包”和描述都指向了这个主题,暗示我们将讨论如何在Java项目中集成这些库来处理Excel...
在Java编程中,生成Excel...记得在实际项目中,可能需要处理更复杂的情况,如合并单元格、插入图片、设置公式等,这时可以进一步扩展`CreateExcelService`以满足需求。同时,确保正确管理和释放资源,防止内存泄漏。
- 图像处理:可以插入和调整Excel中的图像,包括图片和形状。 3. **API使用**: - 类库结构清晰:Free Spire.XLS for Java的API设计直观,易于理解和使用,开发者可以通过简单的代码实现复杂的Excel操作。 - ...
通过java操作excel表格的工具类库 支持Excel 95-2000的所有版本 生成Excel 2000标准格式 支持字体、数字、日期操作 能够修饰单元格属性 支持图像和图表 应该说以上功能已经能够大致满足我们的需要。最...
6. **读取和写入图片**:如果你需要在Excel文件中插入或提取图片,`jxl`库也能胜任。`Picture`类提供了相关的操作。 7. **性能优化**:`jxl`库采用流式处理,允许在内存有限的情况下处理大型Excel文件,降低了内存...
1. 引入 `echartspoi` 和 `echarts-java` 的依赖,将jar包放入项目的lib目录或者配置到构建工具(如Maven或Gradle)中。 2. 初始化 `ECharts` 对象,并设置所需的图表配置,如图表类型、数据、标题等。 3. 使用 `...
虽然提供的部分内容主要展示了如何操作Excel(.xls)文件,但可以推断出处理DOC文件的基本原理是类似的,通常会使用类似Apache POI库这样的第三方库来实现。 Apache POI是一个流行的Java API,用于读写Microsoft ...
JXL支持将图像插入Excel文件,但需要注意,图片必须是BMP格式。使用`Picture`类创建图像对象,然后添加到工作表。 6. **行和列操作**: 可以使用`Row`和`Column`对象来操作Excel的行和列,包括插入、删除、设置...
- 使用 `InlineShapes` 集合的 `AddPicture` 方法插入图片。 - 需要提供图片文件的路径。 #### 五、注意事项 - **内存泄漏问题:** - 使用完毕后,应及时关闭文档和 Word 应用程序实例,避免内存泄漏。 - **...
5. **图表与图形**:插入和操作图表,包括柱状图、饼图、线图等,以及形状和图片。 6. **公式与函数**:支持Excel内置的公式和函数,进行复杂的计算。 7. **数据处理**:执行数据排序、过滤、查找和替换操作。 8....
4. **图片处理**:支持在Excel工作簿中插入、移动或删除图片。 5. **公式计算**:支持读取和计算Excel中的公式,得到结果。 6. **图表处理**:能够创建、修改和复制Excel图表。 7. **样式和格式设置**:可以设置...
对于图片,支持插入、替换、裁剪、调整大小等操作。 4. **页眉和页脚编辑**:可以创建和修改文档的页眉和页脚,添加页码、日期、公司标志等,实现统一的文档格式。 5. **模板应用**:可以利用模板来快速生成大批量...
如果需要在Excel中插入图片,可以使用`Picture`类,配合`WritableImage`来实现。需要注意的是,图片数据需要转换为特定的二进制格式。 五、性能与优化 由于jxl.jar是基于Java的,其性能可能不如专门的本地Excel库...
7. **图片处理**:在工作表中插入图片,如Logo或图表,使用`Sheet.addPicture()`方法。 8. **工作表操作**:可以添加、删除、重命名工作表,调整工作表顺序等。 9. **数据验证**:可以设置数据验证规则,限制...
6. **图像操作**:JXL也支持在工作表中插入图片。 ```java import jxl.write.*; Picture pic = new Picture(0, 0, Image.getInstance("image.jpg")); sheet.addImage(pic); ``` JXL库虽然历史悠久,但仍然广泛...
插入图片需要调用PageOffice的图片操作接口,指定图片源和位置。 4. **第三段**:14号华文彩云字体,2倍行间距,左对齐,首行缩进。这里涉及到更特殊的字体选择和行距设置。 通过PageOffice提供的API,可以方便地...