转载

Java 添加、读取Excel公式

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

使用工具: Free Spire.XLS for Java (免费版)

Jar文件获取及导入:

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

Java 添加、读取Excel公式

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

【示例1】添加Excel公式

import com.spire.xls.*;  
public class InsertFormulas {  
public static void main(String[] args) {  
//创建Workbook对象  
Workbook workbook = new Workbook();  
//获取第一个工作表  
Worksheet sheet =workbook.getWorksheets().get(0);  
//声明两个变量  
int currentRow = 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);  
    }  
}

公式添加效果:

Java 添加、读取Excel公式

【示例2】读取Excel公式

import com.spire.xls.*;  
public class ReadFormulas {  
public static void main(String[] args) {  
//创建Workbook对象  
Workbook workbook = new Workbook();  
//加载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());  
            }  
        }  
    }  
}

公式读取效果:

Java 添加、读取Excel公式

(本文完)

原文  https://segmentfault.com/a/1190000021587425
正文到此结束
Loading...