java excel添加公式_Java 添加、读取Excel公式

Excel是办公室自动化中非常重要的一款软件,具有强大的数据分析和处理功能。其中,Excel公式(包括函数)起了非常重要的作用。因此,掌握处理公式的能力有利于提高对Excel的应用水平,进而提高工作效率。本文将通过使用Java程序来演示如何添加、读取Excel公式。

Jar文件获取及导入:

方法1:通过官网下载获取jar包。解压后将lib文件夹下的Spire.Xls.jar文件导入Java程序。(如下图)

7c4b1d513b87

方法2:通过maven仓库安装导入。具体安装教程详见此网页。

【示例1】添加Excel公式

importcom.spire.xls.*;

public classInsertFormulas {

publicstatic void main(String[] args) {

//创建Workbook对象

Workbook workbook = newWorkbook();

//获取第一个工作表

Worksheet sheet = workbook.getWorksheets().get(0);

//声明两个变量

intcurrentRow = 1;

String currentFormula =null;

//设置列宽

sheet.setColumnWidth(1, 32);

sheet.setColumnWidth(2, 16);

//写入用于测试的数据到单元格

sheet.getCellRange(currentRow,1).setValue("测试数据:");

sheet.getCellRange(currentRow,2).setNumberValue(1);

sheet.getCellRange(currentRow,3).setNumberValue(2);

sheet.getCellRange(currentRow,4).setNumberValue(3);

sheet.getCellRange(currentRow,5).setNumberValue(4);

sheet.getCellRange(currentRow,6).setNumberValue(5);

//写入文本

currentRow += 2;

sheet.getCellRange(currentRow,1).setValue("公式:") ; ;

sheet.getCellRange(currentRow,2).setValue("结果:");

//设置单元格格式

CellRange range = sheet.getCellRange(currentRow,1,currentRow,2);

range.getStyle().getFont().isBold(true);

range.getStyle().setKnownColor(ExcelColors.LightGreen1);

range.getStyle().setFillPattern(ExcelPatternType.Solid);

range.getStyle().getBorders().getByBordersLineType(BordersLineType.EdgeBottom).setLineStyle(LineStyleType.Medium);

//算数运算

currentFormula = "=1/2+3*4";

sheet.getCellRange(++currentRow,1).setText(currentFormula);

sheet.getCellRange(currentRow,2).setFormula(currentFormula);

//日期函数

currentFormula = "=TODAY()";

sheet.getCellRange(++currentRow,1).setText(currentFormula);

sheet.getCellRange(currentRow,2).setFormula(currentFormula);

sheet.getCellRange(currentRow,2).getStyle().setNumberFormat("YYYY/MM/DD");

//时间函数

currentFormula = "=NOW()";

sheet.getCellRange(++currentRow,1).setText(currentFormula);

sheet.getCellRange(currentRow,2).setFormula(currentFormula);

sheet.getCellRange(currentRow,2).getStyle().setNumberFormat("H:MM AM/PM");

//IF函数

currentFormula = "=IF(B1=5,\"Yes\",\"No\")";

sheet.getCellRange(++currentRow,1).setText(currentFormula);

sheet.getCellRange(currentRow,2).setFormula(currentFormula);

//PI函数

currentFormula = "=PI()";

sheet.getCellRange(++currentRow,1).setText(currentFormula);

sheet.getCellRange(currentRow,2).setFormula(currentFormula);

//三角函数

currentFormula = "=SIN(PI()/6)";

sheet.getCellRange(++currentRow,1).setText(currentFormula);

sheet.getCellRange(currentRow,2).setFormula(currentFormula);

//计数函数

currentFormula = "=Count(B1:F1)";

sheet.getCellRange(++currentRow,1).setText(currentFormula);

sheet.getCellRange(currentRow,2).setFormula(currentFormula);

//最大值函数

currentFormula = "=MAX(B1:F1)";

sheet.getCellRange(++currentRow,1).setText(currentFormula);

sheet.getCellRange(currentRow,2).setFormula(currentFormula);

//平均值函数

currentFormula = "=AVERAGE(B1:F1)";

sheet.getCellRange(++currentRow,1).setText(currentFormula);

sheet.getCellRange(currentRow,2).setFormula(currentFormula);

//求和函数

currentFormula = "=SUM(B1:F1)";

sheet.getCellRange(++currentRow,1).setText(currentFormula);

sheet.getCellRange(currentRow,2).setFormula(currentFormula);

//保存文档

workbook.saveToFile("output/InsertFormulas.xlsx",FileFormat.Version2013);

}

}

公式添加效果:

7c4b1d513b87

【示例2】读取Excel公式

importcom.spire.xls.*;

public classReadFormulas {

publicstatic void main(String[] args) {

//创建Workbook对象

Workbook workbook = newWorkbook();

//加载Excel文档

workbook.loadFromFile("C:\\Users\\Test1\\Desktop\\InsertFormulas.xlsx");

//获取第一个工作表

Worksheet sheet = workbook.getWorksheets().get(0);

//遍历B1到B13的单元格

for(Object cell :sheet.getCellRange("B1:B13")) {

CellRange cellRange =(CellRange) cell;

//判断单元格是否含有公式

if(cellRange.hasFormula()) {

//打印单元格及公式

String certainCell = String.format("单元格[%d, %d]含有公式:", cellRange.getRow(), cellRange.getColumn());

System.out.println(certainCell +cellRange.getFormula());

}

}

}

}

公式读取效果:

7c4b1d513b87

(本文完)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值