上次已经为大家介绍过java中Excel行列操作,POI对Word的基本操作有哪些?今天来为大家简述关于java中Excel功能操作的有关内容,然后会通过详细的图片展示出来。
功能操作主要包括以下五个方面。
一、设置密码,代码展示如下:
HSSFSheet sheet = workbook.createSheet("Test0"); // 创建工作表(Sheet) HSSFRow row = sheet.createRow(1); HSSFCell cell = row.createCell(1); cell.setCellValue("已锁定"); HSSFCellStyle locked = workbook.createCellStyle(); locked.setLocked(true); //设置锁定 cell.setCellStyle(locked); cell = row.createCell(2); cell.setCellValue("未锁定"); HSSFCellStyle unlocked = workbook.createCellStyle(); unlocked.setLocked(false); //设置不锁定 cell.setCellStyle(unlocked); sheet.protectSheet("password"); //设置保护密码
图片如下:
二、数据有效性,代码展示如下:
HSSFSheet sheet = workbook.createSheet("Test0"); // 创建工作表(Sheet) HSSFRow row = sheet.createRow(0); HSSFCell cell = row.createCell(0); cell.setCellValue("日期列"); CellRangeAddressList regions = new CellRangeAddressList(1, 65535, 0, 0); //选定一个区域 DVConstraint constraint = DVConstraint.createDateConstraint(DVConstraint.OperatorType.BETWEEN, "1993-01-01", "2014-12-31", "yyyy-MM-dd"); HSSFDataValidation dataValidate = new HSSFDataValidation(regions, constraint); dataValidate.createErrorBox("错误", "你必须输入一个时间!"); sheet.addValidationData(dataValidate);
图片如下:
需要补充一些知识点。CellRangeAddressList类表示一个区域,构造函数中的四个参数分别表示起始行序号,终止行序号,起始列序号,终止列序号。而65535是一个Sheet的最大行数。除此之外,CreateDateConstraint的第一个参数除了设置成DVConstraint.OperatorType.BETWEEN外,还可以设置成下面的这些值,如图所示:
验证的数据类型也有几种选择,如下图所示:
三、生成下拉式菜单,代码展示如下:
CellRangeAddressList regions = new CellRangeAddressList(0, 65535, 0, 0); DVConstraint constraint = DVConstraint.createExplicitListConstraint(new String[] { "C++" , "Java" , "C#" }); HSSFDataValidation dataValidate = new HSSFDataValidation(regions, constraint); sheet.addValidationData(dataValidate);
如下图所示:
四、打印基本设置,代码展示如下:
HSSFSheet sheet = workbook.createSheet("Test0"); // 创建工作表(Sheet) HSSFPrintSetup print = sheet.getPrintSetup(); //得到打印对象 print.setLandscape(false); //true,则表示页面方向为横向;否则为纵向 print.setScale((short) 80); //缩放比例80%(设置为0-100之间的值) print.setFitWidth((short) 2); //设置页宽 print.setFitHeight((short) 4); //设置页高 print.setPaperSize(HSSFPrintSetup.A4_PAPERSIZE); //纸张设置 print.setUsePage(true); //设置打印起始页码不使用"自动" print.setPageStart((short) 6); //设置打印起始页码 sheet.setPrintGridlines(true); //设置打印网格线 print.setNoColor(true); //值为true时,表示单色打印 print.setDraft(true); //值为true时,表示用草稿品质打印 print.setLeftToRight(true); //true表示“先行后列”;false表示“先列后行” print.setNotes(true); //设置打印批注 sheet.setAutobreaks(false); //Sheet页自适应页面大小
五、超链接,代码展示如下:
HSSFSheet sheet = workbook.createSheet("Test0"); CreationHelper createHelper = workbook.getCreationHelper(); // 关联到网站 Hyperlink link = createHelper.createHyperlink(Hyperlink.LINK_URL); link.setAddress("http://poi.apache.org/"); sheet.createRow(0) .createCell(0) .setHyperlink(link); // 关联到当前目录的文件 link = createHelper.createHyperlink(Hyperlink.LINK_FILE); link.setAddress("sample.xls"); sheet.createRow(0) .createCell(1) .setHyperlink(link); // e-mail 关联 link = createHelper.createHyperlink(Hyperlink.LINK_EMAIL); link.setAddress("mailto:poi@apache.org?subject=Hyperlinks"); sheet.createRow(0) .createCell(2) .setHyperlink(link); //关联到工作簿中的位置 link = createHelper.createHyperlink(Hyperlink.LINK_DOCUMENT); link.setAddress("'Test0'!C 3"); //Sheet名为Test0的C 3位置 sheet.createRow(0) .createCell(3) .setHyperlink(link);
以上就是关于在java中Excel的功能操作的主要内容。并且通过详细的代码为大家展示。想要了解更多java经典例子,敬请关注奇Q工具网。
推荐阅读: