在java中Excel的功能操作,图片详解

BSO 2020-09-11 10:08:02 java常见问答 6275

上次已经为大家介绍过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"); //设置保护密码

图片如下:

在java中Excel的功能操作

二、数据有效性,代码展示如下:

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);

图片如下:

在java中Excel的功能操作

需要补充一些知识点。CellRangeAddressList类表示一个区域,构造函数中的四个参数分别表示起始行序号,终止行序号,起始列序号,终止列序号。而65535是一个Sheet的最大行数。除此之外,CreateDateConstraint的第一个参数除了设置成DVConstraint.OperatorType.BETWEEN外,还可以设置成下面的这些值,如图所示:

在java中Excel的功能操作

验证的数据类型也有几种选择,如下图所示:

在java中Excel的功能操作

三、生成下拉式菜单,代码展示如下:

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);

如下图所示:

在java中Excel的功能操作

四、打印基本设置,代码展示如下:

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工具网。

推荐阅读:

java中Excel公式的计算和函数,实例展示

java中Excel单元格对齐包含什么?使用边框怎么做?

java中Excel字体的设置,背景和纹理的操作