2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > excel 公式 java_Java读取 创建Excel的公式

excel 公式 java_Java读取 创建Excel的公式

时间:2023-04-22 05:17:25

相关推荐

excel 公式 java_Java读取 创建Excel的公式

码农公社 210= 102410月24日一个重要的节日--码农(程序员)节

操作excel用公式来处理数据时,可通过创建公式来运算数据,或通过读取公式来获取数据信息来源。

本文以通过Java代码来演示在Excel中创建及读取公式的方法。

这里使用了Excel Java类库(Free Spire.XLS for Java 免费版),在官网下载获取文件包后,

解压,将lib文件夹下的jar文件导入Java程序;或者通过maven仓库下载并导入。

导入结果如下:

1.创建公式

importcom.spire.xls.*;

publicclassAddFormula{

publicstaticvoidmain(String[]args){

//创建Workbook对象

Workbookwb=newWorkbook();

//获取第一个工作表

Worksheetsheet=wb.getWorksheets().get(0);

//声明两个变量

intcurrentRow=1;

StringcurrentFormula=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("结果:");

//设置单元格格式

CellRangerange=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:MMAM/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);

//保存文档

wb.saveToFile("AddFormulas.xlsx",FileFormat.Version);

wb.dispose();

}

}

公式创建结果:

2.读取公式

importcom.spire.xls.*;

publicclassReadFormula{

publicstaticvoidmain(String[]args){

//加载Excel文档

Workbookwb=newWorkbook();

wb.loadFromFile("AddFormulas.xlsx");

//获取第一个工作表

Worksheetsheet=wb.getWorksheets().get(0);

//遍历B1到B13的单元格

for(Objectcell:sheet.getCellRange("B1:B13"))

{

CellRangecellRange=(CellRange)cell;

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

if(cellRange.hasFormula())

{

//打印单元格及公式

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

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

}

}

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。