- 浏览: 2195566 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (1240)
- mac/IOS (287)
- flutter (1)
- J2EE (115)
- android基础知识 (582)
- android中级知识 (55)
- android组件(Widget)开发 (18)
- android 错误 (21)
- javascript (18)
- linux (70)
- 树莓派 (18)
- gwt/gxt (1)
- 工具(IDE)/包(jar) (18)
- web前端 (17)
- java 算法 (8)
- 其它 (5)
- chrome (7)
- 数据库 (8)
- 经济/金融 (0)
- english (2)
- HTML5 (7)
- 网络安全 (14)
- 设计欣赏/设计窗 (8)
- 汇编/C (8)
- 工具类 (4)
- 游戏 (5)
- 开发频道 (5)
- Android OpenGL (1)
- 科学 (4)
- 运维 (0)
- 好东西 (6)
- 美食 (1)
最新评论
-
liangzai_cool:
请教一下,文中,shell、C、Python三种方式控制led ...
树莓派 - MAX7219 -
jiazimo:
...
Kafka源码分析-序列5 -Producer -RecordAccumulator队列分析 -
hp321:
Windows该命令是不是需要安装什么软件才可以?我试过不行( ...
ImageIO读jpg的时候出现javax.imageio.IIOException: Unsupported Image Type -
hp321:
Chenzh_758 写道其实直接用一下代码就可以解决了:JP ...
ImageIO读jpg的时候出现javax.imageio.IIOException: Unsupported Image Type -
huanghonhpeng:
大哥你真强什么都会,研究研究。。。。小弟在这里学到了很多知识。 ...
android 浏览器
Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。
Apache POI 是创建和维护操作各种符合Office Open XML(OOXML)标准和微软的OLE 2复合文档格式(OLE2)的Java API。用它可以使用Java读取和创建,修改MS Excel文件.而且,还可以使用Java读取和创建MS Word和MSPowerPoint文件。Apache POI 提供Java操作Excel解决方案(适用于Excel97-2008)。
http://poi.apache.org/
版本:poi-3.8-20120326.jar
1、生成Workbook
2、生成Workbook OOXML形式(.xlsx)
3、打开Workbook
4、打开加密的Workbook(读加密)
5、追加Sheet
6、复制Sheet
7、修改Sheet名称
8、删除Sheet
9、设置下部Sheet名的Tab的第一个可见Tab
10、调整Sheet顺序
11、设置当前Sheet
t.setActiveSheet();
12、固定窗口
13、分割窗口
14、Sheet缩放
15、行列分组
16、关闭分组
17、插入行
18、删除行
19、移动行
20、修改行高
21、修改列宽
22、不显示网格线
23、设置分页
24、添加,删除,合并单元格
25、设置Header,Footer
26、设置单元格值
27、设置单元格边线
28、设置单元格背景填充
29、设置单元格注释
30、设置单元格字体(斜体,粗体,下线,取消线,字体,大小,背景色)
31、设置超链接
32、设置单元格横向对齐,纵向对齐
33、设置单元格旋转角度
34、设置单元格自动折行
35、设置单元格文字缩进
36、自定义格式
37、设置公式
38、画直线,圆圈(椭圆),正方形(长方形),Textbox
39、插入图片
40、设置可输入List
41、设置输入提示信息
Apache POI 是创建和维护操作各种符合Office Open XML(OOXML)标准和微软的OLE 2复合文档格式(OLE2)的Java API。用它可以使用Java读取和创建,修改MS Excel文件.而且,还可以使用Java读取和创建MS Word和MSPowerPoint文件。Apache POI 提供Java操作Excel解决方案(适用于Excel97-2008)。
- HSSF - 提供读写Microsoft Excel XLS格式档案的功能。
- XSSF - 提供读写Microsoft Excel OOXML XLSX格式档案的功能。
- HWPF - 提供读写Microsoft Word DOC格式档案的功能。
- HSLF - 提供读写Microsoft PowerPoint格式档案的功能。
- HDGF - 提供读Microsoft Visio格式档案的功能。
- HPBF - 提供读Microsoft Publisher格式档案的功能。
- HSMF - 提供读Microsoft Outlook格式档案的功能。
http://poi.apache.org/
版本:poi-3.8-20120326.jar
1、生成Workbook
//生成Workbook HSSFWorkbook wb = new HSSFWorkbook(); //添加Worksheet(不添加sheet时生成的xls文件打开时会报错) @SuppressWarnings("unused") Sheet sheet1 = wb.createSheet(); @SuppressWarnings("unused") Sheet sheet2 = wb.createSheet(); @SuppressWarnings("unused") Sheet sheet3 = wb.createSheet("new sheet"); @SuppressWarnings("unused") Sheet sheet4 = wb.createSheet("rensanning"); //保存为Excel文件 FileOutputStream out = null; try { out = new FileOutputStream("c:\\text.xls"); wb.write(out); } catch (IOException e) { System.out.println(e.toString()); } finally { try { out.close(); } catch (IOException e) { System.out.println(e.toString()); } }
2、生成Workbook OOXML形式(.xlsx)
//生成Workbook XSSFWorkbook wb = new XSSFWorkbook(); //......
3、打开Workbook
//方法一:使用WorkbookFactory FileInputStream in = null; Workbook wb = null; try { in = new FileInputStream(TEST_WORKBOOK_NAME); wb = WorkbookFactory.create(in); } catch (IOException e) { System.out.println(e.toString()); } catch (InvalidFormatException e) { System.out.println(e.toString()); } finally { try { in.close(); } catch (IOException e) { System.out.println(e.toString()); } } System.out.println("====================Workbook===================="); System.out.println("Number of Sheets:" + wb.getNumberOfSheets()); System.out.println("Sheet3's name:" + wb.getSheetName(3)); System.out.println(); //方法二:使用POIFSFileSystem try { in = new FileInputStream(TEST_WORKBOOK_NAME); POIFSFileSystem fs = new POIFSFileSystem(in); wb = new HSSFWorkbook(fs); } catch (IOException e) { System.out.println(e.toString()); } finally { try { in.close(); } catch (IOException e) { System.out.println(e.toString()); } } System.out.println("====================Workbook===================="); System.out.println("Number of Sheets:" + wb.getNumberOfSheets()); System.out.println("Sheet3's name:" + wb.getSheetName(3)); System.out.println();
4、打开加密的Workbook(读加密)
FileInputStream input = new FileInputStream(TEST_WORKBOOK_NAME_ENCRYPTED); BufferedInputStream binput = new BufferedInputStream(input); POIFSFileSystem poifs = new POIFSFileSystem(binput); Biff8EncryptionKey.setCurrentUserPassword(TEST_WORKBOOK_PASSWORD); HSSFWorkbook wb = new HSSFWorkbook(poifs); System.out.println("====================EncryptedWorkbook===================="); System.out.println("Number of Sheets:" + wb.getNumberOfSheets()); System.out.println("Sheet0's name:" + wb.getSheetName(0)); System.out.println();
5、追加Sheet
Sheet sheet = wb.createSheet("append sheet");
6、复制Sheet
wb.cloneSheet(1);
7、修改Sheet名称
wb.setSheetName(i, "SheetName new");
8、删除Sheet
wb.removeSheetAt(1);
9、设置下部Sheet名的Tab的第一个可见Tab
//设置下部Sheet名的Tab的第一个可见Tab(以左的Sheet看不见) wb.setFirstVisibleTab(2);
10、调整Sheet顺序
wb.setSheetOrder("SheetName3", 1); wb.setSheetOrder(wb.getSheetName(4), 0);
11、设置当前Sheet
t.setActiveSheet();
//设置当前Sheet wb.setActiveSheet(wb.getNumberOfSheets() - 1); //(Excel的当前Sheet被设置,需要结合setSelected使用,不然下部Sheet名的Tab还是默认为第一个) //(需要选择多个Sheet的话,每个Sheet调用setSelected(true)即可) wb.getSheetAt(wb.getNumberOfSheets() - 1).setSelected(true);
12、固定窗口
wb.getSheet("SheetName4").createFreezePane(2, 2);
13、分割窗口
wb.getSheet("SheetName5").createSplitPane(2000, 2000, 0, 0, HSSFSheet.PANE_LOWER_LEFT);
14、Sheet缩放
//setZoom(int numerator, int denominator) //"numerator"÷"denominator" 例如: 3÷1=3 那就是设置为300% //扩大(200%) wb.getSheet("sheetname1").setZoom(2, 1); //缩小(50%) wb.getSheet("sheetname2").setZoom(1, 2);
15、行列分组
wb.getSheet("sheetname3").groupColumn(4, 7); wb.getSheet("sheetname3").groupColumn(9, 12); wb.getSheet("sheetname3").groupColumn(10, 11); wb.getSheet("sheetname3").groupRow(5, 14); wb.getSheet("sheetname3").groupRow(7, 13); wb.getSheet("sheetname3").groupRow(16, 19);
16、关闭分组
wb.getSheet("sheetname3").setColumnGroupCollapsed(10, true); wb.getSheet("sheetname3").setRowGroupCollapsed(7, true);
17、插入行
Row row1 = wb.getSheet("sheetname4").createRow(1); Cell cell1_1 = row1.createCell(1); cell1_1.setCellValue(123); Row row4 = wb.getSheet("sheetname4").createRow(4); Cell cell4_3 = row4.createCell(3); cell4_3.setCellValue("中国");
18、删除行
Row row = wb.getSheet("sheetname4").getRow(1); wb.getSheet("sheetname4").removeRow(row);
19、移动行
//******移动行只移动内容,不牵扯行的删除和插入 //移动行(把第1行和第2行移到第5行之后) wb.getSheet("sheetname5").shiftRows(0, 1, 5); //移动行(把第3行和第4行往上移动1行) wb.getSheet("sheetname5").shiftRows(2, 3, -1);
20、修改行高
//设置默认行高 wb.getSheet("sheetname6").setDefaultRowHeight((short)100); //设置行高 wb.getSheet("sheetname6").getRow(2).setHeight((short)(100 * 20));
21、修改列宽
//设置默认列宽 wb.getSheet("sheetname7").setDefaultColumnWidth(12); //设置列宽 wb.getSheet("sheetname7").setColumnWidth(0, 5 * 256);
22、不显示网格线
//不显示网格线 wb.getSheet("sheetname8").setDisplayGridlines(false);
23、设置分页
//设置第一页:3行2列 (可以多次设置) wb.getSheet("sheetname9").setRowBreak(2); wb.getSheet("sheetname9").setColumnBreak(1);
24、添加,删除,合并单元格
//追加行 for (int i = 0; i < 10; i++) { Row row = wb.getSheet("sheetname10").createRow(i); for (int j = 0; j < 10; j++) { //添加单元格 Cell cell = row.createCell(j); cell.setCellValue(i + 1); } //删除单元格 row.removeCell(row.getCell(5)); } //合并单元格 //CellRangeAddress(int firstRow, int lastRow, int firstCol, int lastCol) wb.getSheet("sheetname10").addMergedRegion(new CellRangeAddress(1, 4, 2, 3));
25、设置Header,Footer
//Header Header header = wb.getSheet("sheetname11").getHeader(); header.setLeft(HSSFHeader.startUnderline() + HSSFHeader.font("宋体", "Italic") + "文字文字" + HSSFHeader.endUnderline()); header.setCenter(HSSFHeader.fontSize((short)16) + HSSFHeader.startDoubleUnderline() + HSSFHeader.startBold() + "汉字汉字" + HSSFHeader.endBold() + HSSFHeader.endDoubleUnderline()); header.setRight("打印时间:" + HSSFHeader.date() + " " + HSSFHeader.time()); //Footer Footer footer = wb.getSheet("sheetname11").getFooter(); footer.setLeft("Copyright @ rensanning"); footer.setCenter("Page:" + HSSFFooter.page() + " / " + HSSFFooter.numPages()); footer.setRight("File:" + HSSFFooter.file());
26、设置单元格值
//boolean Cell cell00 = rows[0].createCell(0); boolean val00 = true; cell00.setCellValue(val00); //Calendar 格式化 CellStyle styleCalendar = wb.createCellStyle(); DataFormat formatCalendar = wb.createDataFormat(); styleCalendar.setDataFormat(formatCalendar.getFormat("yyyy/mm/dd")); Cell cell11 = rows[1].createCell(0); Calendar val11 = Calendar.getInstance(); cell11.setCellStyle(styleCalendar); cell11.setCellValue(val11); //Date 格式化 CellStyle styleDate = wb.createCellStyle(); DataFormat formatDate = wb.createDataFormat(); styleDate.setDataFormat(formatDate.getFormat("yyyy/mm/dd hh:mm")); Cell cell21 = rows[2].createCell(0); Date val21 = new Date(); cell21.setCellStyle(styleDate); cell21.setCellValue(val21); //double Cell cell30 = rows[3].createCell(0); double val30 = 1234.56; cell30.setCellValue(val30); //double 格式化 CellStyle styleDouble = wb.createCellStyle(); DataFormat formatDouble = wb.createDataFormat(); styleDouble.setDataFormat(formatDouble.getFormat("#,##0.00")); Cell cell31 = rows[3].createCell(1); double val31 = 1234.56; cell31.setCellStyle(styleDouble); cell31.setCellValue(val31); //String Cell cell40 = rows[4].createCell(0); HSSFRichTextString val40 = new HSSFRichTextString("Test汉字"); cell40.setCellValue(val40);
27、设置单元格边线
wb.getSheet("sheetname2").setColumnWidth(1, 4096); Row row1 = wb.getSheet("sheetname2").createRow(1); row1.setHeightInPoints(70); Cell cell1_1 = row1.createCell(1); cell1_1.setCellValue("Sample"); CellStyle style = wb.createCellStyle(); style.setBorderTop(CellStyle.BORDER_DASHED); style.setBorderBottom(CellStyle.BORDER_DOUBLE); style.setBorderLeft(CellStyle.BORDER_MEDIUM_DASH_DOT); style.setBorderRight(CellStyle.BORDER_MEDIUM); style.setTopBorderColor(IndexedColors.MAROON.getIndex()); style.setBottomBorderColor(IndexedColors.SKY_BLUE.getIndex()); style.setLeftBorderColor(IndexedColors.ORANGE.getIndex()); style.setRightBorderColor(IndexedColors.BLUE_GREY.getIndex()); cell1_1.setCellStyle(style);
28、设置单元格背景填充
wb.getSheet("sheetname3").setColumnWidth(0, 4096); wb.getSheet("sheetname3").setColumnWidth(1, 4096); wb.getSheet("sheetname3").setColumnWidth(2, 4096); Row row1 = wb.getSheet("sheetname3").createRow(1); row1.setHeightInPoints(70); Cell cell1_0 = row1.createCell(0); Cell cell1_1 = row1.createCell(1); Cell cell1_2 = row1.createCell(2); cell1_0.setCellValue("THIN_VERT_BANDS"); cell1_1.setCellValue("BIG_SPOTS"); cell1_2.setCellValue("THICK_HORZ_BANDS"); CellStyle style1 = wb.createCellStyle(); style1.setFillPattern(CellStyle.THIN_VERT_BANDS); style1.setFillForegroundColor(IndexedColors.WHITE.getIndex()); style1.setFillBackgroundColor(IndexedColors.BLUE.getIndex()); CellStyle style2 = wb.createCellStyle(); style2.setFillPattern(CellStyle.BIG_SPOTS); style2.setFillForegroundColor(IndexedColors.RED.getIndex()); style2.setFillBackgroundColor(IndexedColors.WHITE.getIndex()); CellStyle style3 = wb.createCellStyle(); style3.setFillPattern(CellStyle.THICK_HORZ_BANDS); style3.setFillForegroundColor(IndexedColors.PINK.getIndex()); style3.setFillBackgroundColor(IndexedColors.BROWN.getIndex()); cell1_0.setCellStyle(style1); cell1_1.setCellStyle(style2); cell1_2.setCellStyle(style3);
29、设置单元格注释
HSSFCreationHelper createHelper = (HSSFCreationHelper)wb.getCreationHelper(); Drawing patriarch = wb.getSheet("sheetname4").createDrawingPatriarch(); //注释 Row row = wb.getSheet("sheetname4").createRow(1); Cell cell = row.createCell(1); HSSFClientAnchor clientAnchor = new HSSFClientAnchor(0, 0, 0, 0, (short) 4, 2, (short) 6, 5); Comment comment = patriarch.createCellComment(clientAnchor); comment.setString(createHelper.createRichTextString("注释注释111")); comment.setAuthor("rensanning"); cell.setCellComment(comment); //带字体的注释 Row row2 = wb.getSheet("sheetname4").createRow(2); Cell cell2 = row2.createCell(1); Font font = wb.createFont(); font.setFontName("宋体"); font.setFontHeightInPoints((short)10); font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); font.setColor(HSSFColor.RED.index); Comment comment2 = patriarch.createCellComment(clientAnchor); HSSFRichTextString text = new HSSFRichTextString("注释注释222"); text.applyFont(font); comment2.setString(text); comment2.setAuthor("rensanning"); cell2.setCellComment(comment2);
30、设置单元格字体(斜体,粗体,下线,取消线,字体,大小,背景色)
Font font = null; CellStyle style = null; //斜体 font = wb.createFont(); font.setItalic(true); style = wb.createCellStyle(); style.setFont(font); wb.getSheet("sheetname5").getRow(1).getCell(1).setCellStyle(style); //粗体 font = wb.createFont(); font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); style = wb.createCellStyle(); style.setFont(font); wb.getSheet("sheetname5").getRow(2).getCell(1).setCellStyle(style); //字体名 font = wb.createFont(); font.setFontName("Courier New"); style = wb.createCellStyle(); style.setFont(font); wb.getSheet("sheetname5").getRow(3).getCell(1).setCellStyle(style); //字体大小 font = wb.createFont(); font.setFontHeightInPoints((short)20); style = wb.createCellStyle(); style.setFont(font); wb.getSheet("sheetname5").getRow(4).getCell(1).setCellStyle(style); //文字颜色 font = wb.createFont(); font.setColor(HSSFColor.YELLOW.index); style = wb.createCellStyle(); style.setFont(font); wb.getSheet("sheetname5").getRow(5).getCell(1).setCellStyle(style); //上标 font = wb.createFont(); font.setTypeOffset(HSSFFont.SS_SUPER); style = wb.createCellStyle(); style.setFont(font); wb.getSheet("sheetname5").getRow(6).getCell(1).setCellStyle(style); //下标 font = wb.createFont(); font.setTypeOffset(HSSFFont.SS_SUB); style = wb.createCellStyle(); style.setFont(font); wb.getSheet("sheetname5").getRow(7).getCell(1).setCellStyle(style); //删除线 font = wb.createFont(); font.setStrikeout(true); style = wb.createCellStyle(); style.setFont(font); wb.getSheet("sheetname5").getRow(8).getCell(1).setCellStyle(style); //下划线 font = wb.createFont(); font.setUnderline(HSSFFont.U_SINGLE); style = wb.createCellStyle(); style.setFont(font); wb.getSheet("sheetname5").getRow(9).getCell(1).setCellStyle(style); //背景色 style = wb.createCellStyle(); style.setFillForegroundColor(HSSFColor.SEA_GREEN.index); style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); style.setFont(font); wb.getSheet("sheetname5").getRow(10).getCell(1).setCellStyle(style);
31、设置超链接
HSSFCreationHelper createHelper = (HSSFCreationHelper)wb.getCreationHelper(); CellStyle style = wb.createCellStyle(); Font font = wb.createFont(); font.setUnderline(HSSFFont.U_SINGLE); font.setColor(HSSFColor.BLUE.index); style.setFont(font); //追加行 Row[] rows = new Row[10]; for (int i = 0; i < 10; i++) { rows[i] = wb.getSheet("sheetname6").createRow(i); } //URL rows[0].createCell(0).setCellValue("URL Link"); HSSFHyperlink link1 = createHelper.createHyperlink(HSSFHyperlink.LINK_URL); link1.setAddress("http://poi.apache.org/"); rows[0].getCell(0).setHyperlink(link1); rows[0].getCell(0).setCellStyle(style); //Mail rows[1].createCell(0).setCellValue("Email Link"); HSSFHyperlink link2 = createHelper.createHyperlink(HSSFHyperlink.LINK_EMAIL); link2.setAddress("mailto:poi@apache.org?subject=Hyperlinks"); rows[1].getCell(0).setHyperlink(link2); rows[1].getCell(0).setCellStyle(style); //File rows[2].createCell(0).setCellValue("File Link"); HSSFHyperlink link3 = createHelper.createHyperlink(HSSFHyperlink.LINK_FILE); link3.setAddress("link.xls"); rows[2].getCell(0).setHyperlink(link3); rows[2].getCell(0).setCellStyle(style); //Workbook内 rows[3].createCell(0).setCellValue("Worksheet Link"); HSSFHyperlink link4 = createHelper.createHyperlink(HSSFHyperlink.LINK_DOCUMENT); link4.setAddress("sheetname1!A1"); rows[3].getCell(0).setHyperlink(link4); rows[3].getCell(0).setCellStyle(style);
32、设置单元格横向对齐,纵向对齐
//横向对齐 wb.getSheet("sheetname7").setColumnWidth(2, 3072); Row[] row = new Row[7]; Cell[] cell = new Cell[7]; for (int i = 0 ; i < 7 ; i++){ row[i] = wb.getSheet("sheetname7").createRow(i + 1); cell[i] = row[i].createCell(2); cell[i].setCellValue("Please give me a receipt"); } CellStyle style0 = wb.createCellStyle(); style0.setAlignment(CellStyle.ALIGN_GENERAL); cell[0].setCellStyle(style0); CellStyle style1 = wb.createCellStyle(); style1.setAlignment(CellStyle.ALIGN_LEFT); cell[1].setCellStyle(style1); CellStyle style2 = wb.createCellStyle(); style2.setAlignment(CellStyle.ALIGN_CENTER); cell[2].setCellStyle(style2); CellStyle style3 = wb.createCellStyle(); style3.setAlignment(CellStyle.ALIGN_RIGHT); cell[3].setCellStyle(style3); CellStyle style4 = wb.createCellStyle(); style4.setAlignment(CellStyle.ALIGN_FILL); cell[4].setCellStyle(style4); CellStyle style5 = wb.createCellStyle(); style5.setAlignment(CellStyle.ALIGN_JUSTIFY); cell[5].setCellStyle(style5); CellStyle style6 = wb.createCellStyle(); style6.setAlignment(CellStyle.ALIGN_CENTER_SELECTION); cell[6].setCellStyle(style6); //纵向对齐 Row row2 = wb.getSheet("sheetname8").createRow(1); row2.setHeightInPoints(70); Cell[] cell2 = new Cell[4]; for (int i = 0 ; i < 4 ; i++){ cell2[i] = row2.createCell(i + 1); cell2[i].setCellValue("Please give me a receipt"); } CellStyle style02 = wb.createCellStyle(); style02.setVerticalAlignment(CellStyle.VERTICAL_TOP); cell2[0].setCellStyle(style02); CellStyle style12 = wb.createCellStyle(); style12.setVerticalAlignment(CellStyle.VERTICAL_CENTER); cell2[1].setCellStyle(style12); CellStyle style22 = wb.createCellStyle(); style22.setVerticalAlignment(CellStyle.VERTICAL_BOTTOM); cell2[2].setCellStyle(style22); CellStyle style32 = wb.createCellStyle(); style32.setVerticalAlignment(CellStyle.VERTICAL_JUSTIFY); cell2[3].setCellStyle(style32);
33、设置单元格旋转角度
Row[] row = new Row[4]; Cell[] cell = new Cell[4]; for (int i = 0 ; i < 4 ; i++){ row[i] = wb.getSheet("sheetname9").createRow(i + 1); cell[i] = row[i].createCell(2); cell[i].setCellValue("Coffee"); } CellStyle style0 = wb.createCellStyle(); style0.setRotation((short)45); cell[0].setCellStyle(style0); CellStyle style1 = wb.createCellStyle(); style1.setRotation((short)0); cell[1].setCellStyle(style1); CellStyle style2 = wb.createCellStyle(); style2.setRotation((short)-45); cell[2].setCellStyle(style2); CellStyle style3 = wb.createCellStyle(); style3.setRotation((short)-90); cell[3].setCellStyle(style3);
34、设置单元格自动折行
Row[] row = new Row[2]; Cell[] cell = new Cell[2]; for (int i = 0 ; i < 2 ; i++){ row[i] = wb.getSheet("sheetname10").createRow(i + 1); cell[i] = row[i].createCell(2); cell[i].setCellValue("Thank you very much."); } CellStyle style0 = wb.createCellStyle(); style0.setWrapText(true); cell[0].setCellStyle(style0); CellStyle style1 = wb.createCellStyle(); style1.setWrapText(false); cell[1].setCellStyle(style1);
35、设置单元格文字缩进
Row[] row = new Row[4]; Cell[] cell = new Cell[4]; for (int i = 0 ; i < 4 ; i++){ row[i] = wb.getSheet("sheetname11").createRow(i + 1); cell[i] = row[i].createCell(2); cell[i].setCellValue("Coffee"); } CellStyle style1 = wb.createCellStyle(); style1.setIndention((short)1); style1.setAlignment(CellStyle.ALIGN_LEFT); cell[1].setCellStyle(style1); CellStyle style2 = wb.createCellStyle(); style2.setIndention((short)2); style2.setAlignment(CellStyle.ALIGN_LEFT); cell[2].setCellStyle(style2); CellStyle style3 = wb.createCellStyle(); style3.setIndention((short)3); style3.setAlignment(CellStyle.ALIGN_LEFT); cell[3].setCellStyle(style3);
36、自定义格式
Row[] rows = new Row[2]; for (int i = 0; i < rows.length; i++) { rows[i] = wb.getSheet("sheetname12").createRow(i + 1); } DataFormat format = wb.createDataFormat(); CellStyle[] styles = new CellStyle[2]; for (int i = 0; i < styles.length; i++) { styles[i] = wb.createCellStyle(); } styles[0].setDataFormat(format.getFormat("0.0")); styles[1].setDataFormat(format.getFormat("#,##0.000")); Cell[] cells = new Cell[2]; for (int i = 0; i < cells.length; i++) { cells[i] = rows[i].createCell(1); cells[i].setCellValue(1111.25); cells[i].setCellStyle(styles[i]); }
37、设置公式
Row row1 = wb.getSheet("sheetname13").createRow(1); Row row2 = wb.getSheet("sheetname13").createRow(2); Cell cell1_1 = row1.createCell(1); Cell cell1_2 = row1.createCell(2); Cell cell1_3 = row1.createCell(3); Cell cell2_3 = row2.createCell(3); cell1_1.setCellValue(30); cell1_2.setCellValue(25); cell1_3.setCellFormula("B2+C2"); cell2_3.setCellFormula("MOD(B2,C2)");
38、画直线,圆圈(椭圆),正方形(长方形),Textbox
HSSFPatriarch patriarch = ((HSSFSheet)wb.getSheet("sheetname14")).createDrawingPatriarch(); //直线 HSSFClientAnchor clientAnchor1 = new HSSFClientAnchor(0, 0, 0, 0, (short) 4, 2, (short) 6, 5); HSSFSimpleShape shape1 = patriarch.createSimpleShape(clientAnchor1); shape1.setShapeType(HSSFSimpleShape.OBJECT_TYPE_LINE); //圆圈(椭圆) HSSFClientAnchor clientAnchor2 = new HSSFClientAnchor(0, 0, 0, 0, (short) 8, 4, (short) 6, 5); HSSFSimpleShape shape2 = patriarch.createSimpleShape(clientAnchor2); shape2.setShapeType(HSSFSimpleShape.OBJECT_TYPE_OVAL); //正方形(长方形) HSSFClientAnchor clientAnchor3 = new HSSFClientAnchor(0, 0, 0, 0, (short) 12, 6, (short) 6, 5); HSSFSimpleShape shape3 = patriarch.createSimpleShape(clientAnchor3); shape3.setShapeType(HSSFSimpleShape.OBJECT_TYPE_RECTANGLE); //Textbox HSSFClientAnchor clientAnchor4 = new HSSFClientAnchor(0, 0, 0, 0, (short) 14, 8, (short) 6, 5); HSSFTextbox textbox = patriarch.createTextbox(clientAnchor4); textbox.setString(new HSSFRichTextString("This is a test"));
39、插入图片
//需要commons-codec-1.6.jar FileInputStream jpeg = new FileInputStream("resource/test.jpg"); byte[] bytes = IOUtils.toByteArray(jpeg); int pictureIndex = wb.addPicture(bytes, HSSFWorkbook.PICTURE_TYPE_JPEG); jpeg.close(); HSSFCreationHelper helper = (HSSFCreationHelper) wb.getCreationHelper(); HSSFPatriarch patriarch = ((HSSFSheet)wb.getSheet("sheetname15")).createDrawingPatriarch(); HSSFClientAnchor clientAnchor = helper.createClientAnchor(); clientAnchor.setCol1(3); clientAnchor.setRow1(2); HSSFPicture picture = patriarch.createPicture(clientAnchor, pictureIndex); picture.resize();
40、设置可输入List
CellRangeAddressList addressList = new CellRangeAddressList( 0, 0, 0, 0); final String[] DATA_LIST = new String[] { "10", "20", "30", }; DVConstraint dvConstraint = DVConstraint.createExplicitListConstraint(DATA_LIST); HSSFDataValidation dataValidation = new HSSFDataValidation(addressList, dvConstraint); dataValidation.setSuppressDropDownArrow(false); wb.getSheet("sheetname16").addValidationData(dataValidation);
41、设置输入提示信息
CellRangeAddressList addressList = new CellRangeAddressList( 0, 0, 0, 0); final String[] DATA_LIST = new String[] { "10", "20", "30", }; DVConstraint dvConstraint = DVConstraint.createExplicitListConstraint(DATA_LIST); HSSFDataValidation dataValidation = new HSSFDataValidation(addressList, dvConstraint); dataValidation.setSuppressDropDownArrow(false); dataValidation.createPromptBox("输入提示", "请从下拉列表中选择!"); dataValidation.setShowPromptBox(true); wb.getSheet("sheetname17").addValidationData(dataValidation);
发表评论
-
小程序textarea完美填坑
2020-07-07 16:09 519相信做微信小程序的码友们都被textarea这个原生组件坑过 ... -
Nginx+Https自己敲命令生成证书
2020-05-18 09:35 946一、准备 环境:centos6.8 ... -
https证书生成环境搭建配置(基于Tomcat和Nginx)
2020-04-24 11:06 820一、基于Tomcat、JDK内置密钥工具: 1、生成服务端证 ... -
史上最强Tomcat8性能优化
2019-11-01 21:41 883授人以鱼不如授人以渔 ... -
SpringBoot配置HTTPS,并实现HTTP访问自动转HTTPS访问
2019-10-07 09:13 5601.使用jdk自带的 keytools 创建证书 打开cmd ... -
Spring Boot工程集成全局唯一ID生成器 UidGenerator
2019-09-16 09:04 854概述 流水号生成器(全局唯一 ID生成器)是服务化系统的基础 ... -
CentOS7下Redis的安装与使用
2019-08-17 11:45 605一、手动安装过程 1、准备工作(安装gcc依赖) yum ... -
Nginx与tomcat组合的简单使用
2019-08-17 10:05 429配置tomcat跳转 请求http出现400的时候在这里配置 ... -
linux下lvs+keepalived安装配置
2019-07-10 14:20 462keepalived主机:192.168.174. ... -
使用Docker搭建Tomcat运行环境
2019-02-08 21:32 4871 准备宿主系统 准备一 ... -
Netty笔记-GlobalEventExecutor
2019-02-06 23:00 6341.概念 /** * Single-thread si ... -
Netty4转发服务的实现方案
2019-02-06 15:03 1134如果用Netty做转发服务(不需要同步应答),Netty中有一 ... -
java手机号归属地查询
2018-12-25 17:16 745所需的包:carrier-1.75.jar 、geocoder ... -
基于Netty4的HttpServer和HttpClient的简单实现
2018-10-17 20:02 683Http 消息格式: Http request: Met ... -
javafx : 支持使用微调(spinner)控制的数字的文本框(NemberTextField)
2018-10-16 00:00 1091最近花了一些时间学习javaFX, 要更深入地理解新GUI包, ... -
我的Java(定制你的Java/JavaFX Runtime)
2018-10-12 23:29 677最新的JDK 11发布了,撒花 新版本的JDK终于有了ope ... -
javaFX的几个新特性,让swing彻底过时
2018-10-12 22:42 665首先声明,Java的GUI曾经 ... -
mac os系统用install4j把jar包生成app
2018-10-05 23:02 1424install4j有windows版也有mac版 mac电脑 ... -
JavaFX Alert对话框
2018-10-05 22:01 23641. 标准对话框 消息对话框 Alert alert = ... -
IDEA Properties中文unicode转码问题
2017-02-17 19:54 1033摘要: 如何让IDEA的properties中的中文进行uni ...
相关推荐
以下将详细介绍如何使用Apache POI进行Java读写Excel的基本操作。 1. **生成Workbook** 创建一个Workbook对象是开始处理Excel文件的第一步。对于旧版的Excel格式(XLS),可以使用`HSSFWorkbook`;对于OOXML格式...
Apache POI提供了一个直观的API,允许开发者创建、修改和读取Excel工作簿、工作表、单元格等元素。在提供的压缩包文件中,`zjq-poi-3.9.jar`和`zjq-poi-3.7.jar`是包含Apache POI库的JAR文件,不同版本可能对应着...
POI入门 ##### 1.1 Excel基本知识 在Java开发中,处理Excel文件是一项常见的任务。理解Excel的基本结构是使用Apache POI库进行开发的基础。 - **Excel文件结构**:一个Excel文件由多个工作表(sheet)组成,每个...
2. **Apache POI入门** 首先,需要在项目中引入Apache POI依赖。如果你使用Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.apache.poi <artifactId>poi-ooxml <version>4.1.2 ``` 3. **...
### JAVA POI 读取操作EXCEL教程 #### 一、概述 `Java_Poi`是一款功能强大的开源库,主要用于处理Microsoft Excel文件。通过使用Java_Poi,开发者可以在Java应用程序中实现对Excel文件的读取、写入以及复杂的格式...
这些类提供了创建、修改和读取Excel内容的方法。 - **操作**:你可以通过jxl创建新的工作簿,添加工作表,插入或删除行和列,设置单元格的值,格式化数据(如数字、日期、百分比等)以及应用样式。 - **导入导出**...
### 读取Excel文件: - 打开文件时,同样根据文件格式选择对应的 `Workbook` 类型。 - 遍历 `Workbook` 中的 `Sheet`,再遍历 `Sheet` 中的 `Row`,最后处理每个 `Cell`。 - 可以使用 `getCellType()` 方法获取...
在本教程中,我们将专注于"poi操作excel入门",帮助初学者掌握如何使用Apache POI库来创建、读取和修改Excel文档。 首先,我们需要在项目中引入Apache POI的库。在给定的压缩包中,我们看到有一个名为`poi-3.0.2-...
HSSF提供了两种读取Excel文件的方式: - **UserModel**: 适用于小规模文件或需要随机访问的场景。 - **EventUserModel**: 针对大规模文件的高效读取方式。 #### 三、具体实现步骤 ##### 1. 准备工作 为了开始...
POI(Java API for Microsoft Documents)是一个开源的Java库,用于读取和写入Microsoft Office格式的文件。Apache POI项目提供了HSSF和XSSF两个模块,分别用于操作旧版的Excel文件(.xls)和新版的Excel文件(.xlsx...
这个“POI Excel最新官方开发包及文档”包含的是Apache POI库的最新版本及其相关的用户手册和API文档,为开发者提供了一个强大的工具集,使他们能够在Java应用程序中创建、读取和修改Excel文件。 Apache POI的核心...
在Java中,我们可以借助Apache POI库来实现对Excel文件的读写操作。Apache POI是一个开源项目,提供了API来处理Microsoft Office格式的文件,包括Excel。 1. **Apache POI简介** Apache POI是一个强大的库,它允许...
在"Apache POI入门级读写操作"中,我们将深入探讨如何使用这个库来执行基本的Excel文件(XLS和XLSX)的读写任务。 首先,我们来看POI工程的两个关键组件: 1. **HSSF (Horrible Spreadsheet Format)**:这是Apache...
导入Excel数据通常涉及到读取Excel文件并将其内容转换为程序可以处理的数据结构,如Java集合或数据库记录。使用Apache POI,你可以创建`Workbook`对象来代表整个Excel文件,然后通过`Sheet`对象访问工作表,再用`...
1,Easy Excel入门 1.1:Easy Excel概述 EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel工具。 官网: EasyExcel官方文档 - 基于Java的Excel处理工具 | ...
1. POI概念介绍:Apache POI是一个开源的Java库,用于读写Microsoft Office格式的文件,如Excel(HSSF和XSSF)、Word(HWPF、HSLF)和PowerPoint(HDGF、HSLF、XSLF)等。它是Java操作Excel文件的首选库,允许Java...
Apache POI 是 Apache 软件基金会的开源项目之一,它主要提供了一系列用于处理 Microsoft Office 文档的 Java API。POI 支持多种 Office 文件格式,其中较为成熟的模块是 HSSF(Horrible Spreadsheet Format),主要...