欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java添加、读取Excel公式

程序员文章站 2024-02-07 11:06:52
操作excel表格用公式来处理数据时,可通过创建公式来运算数据,或通过读取公式来获取数据信息来源。本文以通过Java代码来演示在Excel中创建及读取公式的方法。这里使用了Excel Java类库(Free Spire.XLS for Java 免费版),在官网下载获取文件包后,解压,将lib文件夹 ......

操作excel表格用公式来处理数据时,可通过创建公式来运算数据,或通过读取公式来获取数据信息来源。本文以通过java代码来演示在excel中创建及读取公式的方法。这里使用了excel java类库(free spire.xls for java 免费版),在官网下载获取文件包后,解压,将lib文件夹下的jar文件导入java程序;或者通过并导入。导入结果如下:

Java添加、读取Excel公式

 

 

1. 创建公式

import com.spire.xls.*;

public class addformula {
    public static void main(string[] args) {
        //创建workbook对象
        workbook wb = new workbook();

        //获取第一个工作表
        worksheet sheet = wb.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);

        //保存文档
        wb.savetofile("addformulas.xlsx",fileformat.version2013);
        wb.dispose();
    }
}

 

公式创建结果:

Java添加、读取Excel公式

 

2. 读取公式

import com.spire.xls.*;

public class readformula {
    public static void main(string[] args) {
        //加载excel文档
        workbook wb = new workbook();
        wb.loadfromfile("addformulas.xlsx");

        //获取第一个工作表
        worksheet sheet = wb.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公式

 

(本文完)