精华内容
下载资源
问答
  • 相关内容,今天继续为大家简述javaExcel公式的计算和函数,并且通过实际例子来为大家展示。首先会展示实际代码,并附有一定说明。一、基本计算,代码展示如下:HSSFSheetsheet=workbook.createSheet("Test...

    上次已经为大家介绍过java中Excel单元格对齐包含什么?使用边框怎么做?的相关内容,今天继续为大家简述java中Excel公式的计算和函数,并且通过实际的例子来为大家展示。

    首先会展示实际的代码,并附有一定的说明。

    一、基本计算,代码展示如下:HSSFSheet sheet = workbook.createSheet("Test"); // 创建工作表(Sheet)

    HSSFRow row = sheet.createRow(0);

    HSSFCell cell = row.createCell(0);

    cell.setCellFormula("2+3*4"); //设置公式

    cell = row.createCell(1);

    cell.setCellValue(10);

    cell = row.createCell(2);

    cell.setCellFormula("A 1*B 1"); //设置公式

    二、SUM函数,代码展示如下:HSSFSheet sheet = workbook.createSheet("Test"); // 创建工作表(Sheet)

    HSSFRow row = sheet.createRow(0);

    row.createCell(0)

    .setCellValue(1);

    row.createCell(1)

    .setCellValue(2);

    row.createCell(2)

    .setCellValue(3);

    row.createCell(3)

    .setCellValue(4);

    row.createCell(4)

    .setCellValue(5);

    row = sheet.createRow(1);

    row.createCell(0)

    .setCellFormula("sum(A 1,C 1)"); //等价于"A 1+C 1"

    row.createCell(1)

    .setCellFormula("sum(B 1:D 1)"); //等价于"B 1+C 1+D 1"

    三、日期函数,代码展示如下:HSSFSheet sheet = workbook.createSheet("Test"); // 创建工作表(Sheet)

    HSSFCellStyle style = workbook.createCellStyle();

    style.setDataFormat(workbook.createDataFormat()

    .getFormat("yyyy-mm-dd"));

    HSSFRow row = sheet.createRow(0);

    Calendar date = Calendar.getInstance(); //日历对象

    HSSFCell cell = row.createCell(0);

    date.set(2011, 2, 7);

    cell.setCellValue(date.getTime());

    cell.setCellStyle(style); //第一个单元格开始时间设置完成

    cell = row.createCell(1);

    date.set(2014, 4, 25);

    cell.setCellValue(date.getTime());

    cell.setCellStyle(style); //第一个单元格结束时间设置完成

    cell = row.createCell(3);

    cell.setCellFormula("CONCATENATE(DATEDIF(A 1,B 1,\"y\"),\"年\")");

    cell = row.createCell(4);

    cell.setCellFormula("CONCATENATE(DATEDIF(A 1,B 1,\"m\"),\"月\")");

    cell = row.createCell(5);

    cell.setCellFormula("CONCATENATE(DATEDIF(A 1,B 1,\"d\"),\"日\")");

    四、字符串相关函数,代码展示如下:HSSFSheet sheet = workbook.createSheet("Test"); // 创建工作表(Sheet)

    HSSFRow row = sheet.createRow(0);

    row.createCell(0)

    .setCellValue("abcdefg");

    row.createCell(1)

    .setCellValue("aa bb cc dd ee fF GG");

    row.createCell(3)

    .setCellFormula("UPPER(A 1)");

    row.createCell(4)

    .setCellFormula("PROPER(B 1)");

    接下来对上面代码中的公式作一个简要的说明:

    ①UPPER(string):将文本转换成大写形式。

    ②PROPER(string):将文字串的首字母及任何非字母字符之后的首字母转换成大写。将其余的字母转换成小写。

    五、IF函数,代码展示如下:HSSFSheet sheet = workbook.createSheet("Test"); // 创建工作表(Sheet)

    HSSFRow row = sheet.createRow(0);

    row.createCell(0)

    .setCellValue(12);

    row.createCell(1)

    .setCellValue(23);

    row.createCell(3)

    .setCellFormula("IF(A 1>B 1,\"A 1大于B 1\",\"A 1小于等于B 1\")");

    同样地,对IF函数作一个简要的说明:IF(logical_test,value_if_true,value_if_false)用来作为逻辑判断。这里面的①Logical_test表示计算结果为TRUE或FALSE的任意值或表达式 ;

    ②value_if_true表示当表达式Logical_test的值为TRUE时的返回值;③value_if_false表示当表达式Logical_test的值为FALSE时的返回值。

    以上就是关于java中Excel公式的计算和函数并且通过实际的例子为大家展示,同时还作了简要的说明。如果你对java知识感兴趣,想要了解更多java基础和java经典例子,敬请关注奇Q工具网。

    推荐阅读:

    展开全文
  • Excel数组公式可实现对多个数据的计算操作,从而避免了逐个计算所带来繁琐工具,使计算效果得到大幅度提高。今天小编就为大家讲解一下Excel数组公式的具体使用方法。一、正确使用数组公式的前提:1、要想正确使用...

    Excel数组公式可实现对多个数据的计算操作,从而避免了逐个计算所带来的繁琐工具,使计算效果得到大幅度提高。今天小编就为大家讲解一下Excel数组公式的具体使用方法。

    5gjssz2gzx1.jpg

    一、正确使用数组公式的前提:

    1、要想正确使用数组公式,则需要首先选中将要生成的结果单元格区域,且该区域与整个计算结果所得区域相同或等价。

    2、数组公式采用一对花括号做为标记,因此在输入完公式之后,只有在同时按下“Ctrl+Shift+Enter”组合键之后才能正常生成数组公式。

    3、数组公式只有与其它函数相配合才能发挥出其强大的优势,在使用数组公式的过程中,要正确的使用相对单元格引用和绝对单元格引用,这样才能确保计算结果的正确性。

    二、实例介绍

    1、对于如图所示的表格,如果我们想计算A*B,则首先选中“C1”至“C7”单元格,然后在“编辑栏”中输入“=A2:A7*B2:B7”。

    fhha0cq1yzg.jpg

    2、接着同时按下“Ctrl+Shift+Enter”组合键,就会发现数组公式产生了结果,并且“编辑栏”中的公式被一对花括号所包围。

    jhilyqowu3w.jpg

    3、将鼠标放置在编辑栏中,按键盘上的“F9”,就会发现数组公式的结果被计算出来啦。

    bporkozas0j.jpg

    4、接下来我们实现一些更复杂的操作,进行区域数据的计算。如图所示的两个区域,如果想生成“九九乘法”表,则选择“9*9”的结果生成区域,然后输入公式“=A2:A10*D1:L1”。

    gk2onlwetoj.jpg

    5、接着同时按下“Ctrl+Shift+Enter”组合键,使可得结果。

    ajchyahgjjx.jpg

    三、数组公式与函数的配合:

    如图,如果我们想要计算产品总金额,就可以在C8单元格中输入公式“”并同时按下“Ctrl+Shift+Enter”组合键来生成结果。

    axqdoltb0jt.jpg

    ao3ttiys0fb.jpg

    相关推荐:

    Excel2016怎么隐藏辑栏上的函数公式?

    excel怎么计算圆的面积? excel中圆的面积公式的使用方法

    excel2010怎么制作自动计算表格?excel表格公式计算数据的教程

    展开全文
  • 当我们在计算处理Excel表格中的数据时,为了提高工作效率,我们常常会用到各种Excel函数公式, 本文将介绍如何使用Free Spire.XLS for Java添加公式到Excel单元格,以及如何读取单元格中的公式。基本步骤:1. 下载...

    当我们在计算处理Excel表格中的数据时,为了提高工作效率,我们常常会用到各种Excel函数公式, 本文将介绍如何使用Free Spire.XLS for Java添加公式到Excel单元格,以及如何读取单元格中的公式。

    基本步骤:

    1. 下载

    Free Spire.XLS for Java包并解压缩,然后将lib文件夹下的Spire.Xls.jar包作为依赖项导入到Java应用程序中。(也可直接通过Maven仓库安装JAR包(配置pom.xml文件的代码见下文))

    2. 在Java应用程序中新建一个Java Class(此处我命名为MergeCells 和 UnmergeCells), 然后输入相应的Java代码并运行。

    配置pom.xml文件:

    com.e-iceblue

    http://repo.e-iceblue.cn/repository/maven-public/

    e-iceblue

    spire.xls.free

    2.2.0

    添加公式

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

    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("InsertFormulas.xlsx",FileFormat.Version2013);

    }

    }

    84d37e2329ea324f2b21ca5ea105c570.png

    读取公式

    import com.spire.xls.*;

    public class ReadFormulas {

    public static void main(String[] args) {

    //创建Workbook对象

    Workbook workbook = new Workbook();

    //加载Excel文档

    workbook.loadFromFile("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());

    }

    }

    }

    }

    50da91a16cbbd93d31c82f2b353534b9.png

    展开全文
  • java导出excel自动计算公式

    千次阅读 2014-08-26 09:46:27
    最近在开发过程中,遇到java读取excel模板并写入数据,其中数据有计算求和操作,一开始没有实现导出自动计算公式,所以费了一遍事,后台又重新做了一次数据计算,总感觉这样不是很好,所以上网找资料,终于在同事...
    最近在开发过程中,遇到java读取excel模板并写入数据,其中数据有计算求和的操作,一开始没有实现导出自动计算公式,所以费了一遍事,后台又重新做了一次数据计算,总感觉这样不是很好,所以上网找资料,终于在同事的帮助下实现了这一功能,分享出来,希望自己或看到的人可以受用。
    String realPath= request.getSession().getServletContext().getRealPath("/WEB-INF/templetefile");
    File templeteFile = new File(realPath + "/examNotice.xlsx");
    InputStream fis = new FileInputStream(templeteFile);
    XSSFWorkbook wb = new XSSFWorkbook(fis);
    XSSFSheet st = wb.getSheetAt(0);
    XSSFCell cell = null;
    String[] rowName = {"LEVEL_5","LEVEL_4","LEVEL_3"};
    for(int i=9;i<12;i++){
    int k = 1;
    for (Map.Entry<String, Object> entry : result.entrySet()) {
    Map map = (Map)entry.getValue();
    cell = st.getRow(i).getCell(k);
    cell.setCellType(XSSFCell.CELL_TYPE_NUMERIC);//设置单位格类型
    cell.setCellValue(Double.valueOf(map.get(rowName[i-9]).toString()));
    k++;
    }
    }
    [color=red]st.setForceFormulaRecalculation(true);[/color]//重点在这,这句是重新计算公式的意思
    if(request.getHeader("user-agent").indexOf("MSIE") != -1) {
    filename = java.net.URLEncoder.encode(filename,"utf-8") + ".xlsx";
    } else {
    filename = new String(filename.getBytes("utf-8"),"iso-8859-1") + ".xlsx";
    }
    ByteArrayOutputStream bStream = new ByteArrayOutputStream();
    wb.write(bStream);
    ByteArrayInputStream bInputStream = new ByteArrayInputStream(bStream.toByteArray());
    response.setContentLength(bStream.size());
    response.setContentType("application/x-msdownload");
    response.setHeader("Content-Disposition", "attachment;filename="+ filename);
    byte[] bt = new byte[1024];
    int bcount = 0;
    while((bcount = bInputStream.read(bt,0,1024)) != -1){
    response.getOutputStream().write(bt,0,bcount);
    }
    response.getOutputStream().flush();
    展开全文
  • Java poi读取Excel公式的计算

    千次阅读 2020-06-02 16:09:34
    读取Excel表格,如果是 数值型 可能遇到公式 导致读取不到 switch (thecell.getCellType()) { // 读取到公式 case Cell.CELL_TYPE_FORMULA: String valueStr = ""; try { valueStr = String.valueOf(the...
  • java操作excel表格时候,有时候通过公式计算比直接后台计算要方便,所以公式计算的重要性体现了出来 // 单元格类型 cell.setCellType(CellType.FORMULA.getCode()); // 公式 cell.setCellFormula("SUM(J20:J"+...
  • 今天继续来讲下Excel数组函数应用:Excel数组公式比起普通数据计算操作,避免了逐个计算所带来繁琐,使计算效果更高。但对于新手来讲,能用普通公式+辅助列,建议还是不要数组比较好。数组运算比较慢,数据多...
  • 问题:设置Excel的公式,根据java更新Excel中变量单元格,输出的Excel公式未生效 解决: //打开Excel重新计算公式 workBook.setForceFormulaRecalculation(true); 源码如下: /** * Whether the ...
  • 最近接到一个需求,用Java写数据到excel,遇到一些问题,在这里请教一下大家。  首先,我这个是在原有的excel上做修改;  我的excel有两个sheet,在sheet2中会有引用到sheet1中单元格求和函数;  我写...
  • Java poi读取Excel表格中公式的计算

    万次阅读 2018-09-10 18:12:56
    当读取Excel表格,保存至Oracle数据库时,当需要保存格式为Number时,当读取到Excel中有公式时,会报错。 使用下面处理方式可以解决该问题。 注:代码中参数:value就是获取后保存值 switch (cell....
  • JAVA 自定义公式计算器, 形如EXCEL中含有大量的计算公式-财务函数: PMT FV NPER PV DB DDB 这些:可以通过编码方式,解决在JAVA中进行数据计算, 同时可以自定义扩展自己想要数据函数。执行语句: PMT(0.00515,...
  • 展开全部定积e69da5e6ba9062616964757a686964616f31333339653831分的几何意义就是求曲线...③ 利用Excel的趋势线将近似拟合曲线公式推出;④ 使用微积分中的不定积分求出原函数(这一步Excel无法替代);⑤ 使用Excel...
  • 当我们在计算处理Excel表格中的数据时,为了提高工作效率,我们常常会用到各种Excel函数公式, 本文将介绍如何使用Free Spire.XLS for Java添加公式到Excel单元格,以及如何读取单元格中的公式。基本步骤:1. 下载...
  • FileInputStream fis = new FileInputStream("c:/temp/test.xls"); Workbook wb = new HSSFWorkbook(fis); //or new XSSFWorkbook("c:/temp/test.xls") Sheet sheet = wb.getSheetAt(0); FormulaEvaluator evalua
  • 中间“IF((A2:A12="一班")+(A2:A12="二班"),1,0))”运算过程是这样,判断A2:A12区域内单元格值是否是“一班”,如果是则结果为1,则此公式计算的结果依次是“1、0、0、1、0、0、1、0、0、1、0...
  • Java POI:如何读取Excel单元格值而不是公式进行计算?我正在使用Apache POI API从Excel文件获取值。除了包含公式的单元格之外,其他所有功能都可以正常运行。 实际上,evaluateFormulaCell()返回是单元格中使用...
  • Java POI:如何读取Excel单元格的值而不是计算公式呢?我正在使用Apache POI API从Excel文件中获取值。 除了包含公式的单元之外,一切都很好。 事实上, cell.getStringCellValue()返回单元格中使用的公式,而不是...
  • java读取Excel文件内容公式的处理

    千次阅读 2011-09-29 17:18:30
    这几天做了个比较复杂的用java读取Excel文件内容,里面充斥的大量的公式计算,如何读取出其计算结果成了大问题,碰到问题怎么办,两个字"解决",闲话不叙说说解决办法吧。 采用的工具是apache的POI 具体解决办法...
  • 实际上,cell.getStringCellValue()返回的是单元格中使用的公式,而不是单元格的值。我试图使用evaluateFormulaCell()方法,但它不工作,因为我使用GETPIVOTDATA Excel公式,这个公式没有在API中实现:Exception in ...
  • 这个是由来已久问题,但是由于Office安装时候是显示公式计算结果,并且自动更新,所以当表格中出现了只显示公式,而不显示计算结果时候,往往让人手足无措了。在最近学员中就出现了几个这样情况,老板催...
  • 读取excel模版的数据,然后再根据数据库里的公式进行计算例如E8+((E7-E3)-F4-G8)/E5+(E5-H3)-S2公式有许多条,不固定格式。已经读出了excel数据,就是不知道怎么把公式里的格子替换成excel里的对应格子数据,...
  • // 判断数据类型 switch (cell.getCellType()) { case Cell.CELL_TYPE_NUMERIC: // 数字 cellValue = String.valueOf(cell.getNumericCellValue()); break; case Cell.CELL_TYPE_STRING: // 字符串 ...
  • 上面的建议对我来说不起作用cell.getRawValue()返回与AUT上的excel单元格相同的公式,所以写下面的函数,它工作:public void readFormula() throws IOException {FileInputStream fis = new FileInputStream("Path ...
  • 事实上, cell.getStringCellValue() 正在返回单元格中使用的公式,而不是单元格的值 .我尝试使用 evaluateFormulaCell() 方法,但它不起作用,因为我使用的是GETPIVOTDATA Excel公式,并且此公式未在API中实现:...
  • excel2007 公式自动计算

    千次阅读 2010-04-16 14:08:00
    最近用poi操作excel的时候,取的公式的结果,总是报错跟进去后发现原来excel公式传给java的值是NAN,而不是公式计算后的值于是仔细检查了一下公式,发现写的没有错误,最后得出结论,excel没有把公式计算后的结果传...
  • 当我们在计算处理Excel表格中的数据时,为了提高工作效率,我们常常会用到各种Excel函数公式, 本文将介绍如何使用Free Spire.XLS for Java添加公式到Excel单元格,以及如何读取单元格中的公式。基本步骤:1. 下载...
  • JAVA POI 出力EXCEL时,EXCEL模板中的公式无效问题 工作中遇到一个问题。 EXCEL模板有两个sheet,画面内容要出力到第二个sheet中,第一个sheet设置公式,读取第二个sheet的内容进行计算。 出现了这样一个问题,画面...
  • I am using Apache POI Api to getting values from an Excel file.Everything is working great except with cells containing formulas. In fact, the cell.getStringCellValue() is returning the formula used i...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 164
精华内容 65
关键字:

java计算excel的公式

java 订阅