工作总结 npoi 模板 导出公式 excel
Apache POI(5):公式(formula)
Apache POI(5):公式(formula)
-
package com.hthk.iisz.util;
-
-
import java.io.File;
-
import java.io.FileOutputStream;
-
-
import org.apache.poi.xssf.usermodel.XSSFCell;
-
import org.apache.poi.xssf.usermodel.XSSFRow;
-
import org.apache.poi.xssf.usermodel.XSSFSheet;
-
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
-
-
public class FormulaTest {
-
-
public static void main(String[] args) throws Exception {
-
formula();
-
}
-
-
public static void formula() throws Exception {
-
XSSFWorkbook workbook = new XSSFWorkbook();
-
XSSFSheet sheet = workbook.createSheet("formula");
-
XSSFRow row = sheet.createRow(1);
-
XSSFCell cell = row.createCell(1);
-
cell.setCellValue("A =");
-
cell = row.createCell(2);
-
cell.setCellValue(2);
-
row = sheet.createRow(2);
-
cell = row.createCell(1);
-
cell.setCellValue("B =");
-
cell = row.createCell(2);
-
cell.setCellValue(4);
-
row = sheet.createRow(3);
-
cell = row.createCell(1);
-
cell.setCellValue("Total =");
-
cell = row.createCell(2);
-
// create sum formula
-
cell.setCellType(XSSFCell.CELL_TYPE_FORMULA);
-
cell.setCellFormula("SUM(C2:C3)");
-
-
cell = row.createCell(3);
-
cell.setCellValue("SUM(C2:C3)");
-
row = sheet.createRow(4);
-
cell = row.createCell(1);
-
cell.setCellValue("POWER =");
-
cell = row.createCell(2);
-
// create power formula
-
cell.setCellType(XSSFCell.CELL_TYPE_FORMULA);
-
cell.setCellFormula("POWER(C2,C3)");
-
-
cell = row.createCell(3);
-
cell.setCellValue("POWER(C2,C3)");
-
row = sheet.createRow(5);
-
cell = row.createCell(1);
-
cell.setCellValue("MAX =");
-
cell = row.createCell(2);
-
// Create MAX formula
-
cell.setCellType(XSSFCell.CELL_TYPE_FORMULA);
-
cell.setCellFormula("MAX(C2,C3)");
-
-
cell = row.createCell(3);
-
cell.setCellValue("MAX(C2,C3)");
-
row = sheet.createRow(6);
-
cell = row.createCell(1);
-
cell.setCellValue("FACT =");
-
cell = row.createCell(2);
-
// Create FACT formula
-
cell.setCellType(XSSFCell.CELL_TYPE_FORMULA);
-
cell.setCellFormula("FACT(C3)");
-
-
cell = row.createCell(3);
-
cell.setCellValue("FACT(C3)");
-
row = sheet.createRow(7);
-
cell = row.createCell(1);
-
cell.setCellValue("SQRT =");
-
cell = row.createCell(2);
-
// Create SQRT formula
-
cell.setCellType(XSSFCell.CELL_TYPE_FORMULA);
-
cell.setCellFormula("SQRT(C5)");
-
-
cell = row.createCell(3);
-
cell.setCellValue("SQRT(C5)");
-
workbook.getCreationHelper().createFormulaEvaluator().evaluateAll();
-
FileOutputStream out = new FileOutputStream(new File("formula.xlsx"));
-
workbook.write(out);
-
out.close();
-
System.out.println("fromula.xlsx written successfully");
-
}
-
-
}
效果截图
sheet.ForceFormulaRecalculation =
true
;
1.使用cell.setCellFormula方法重新在制定Cell里写入公式。
2.使用sheet.setForceFormulaRecalculation(true);方法强制让改Sheet执行公式。
EvaluateFormulaCell
#region 插入块
int rowsindex = 0;
for (int i = 0; i < lastarea.Count - 1; i++)
{
int tj = rowsindex + 70;
for (; rowsindex < tj; rowsindex++)
{
sheet.CreateRow(rowsindex + 70); //有些行为null 统一创建一下
sheet.CopyRow(rowsindex, rowsindex + 70);
}
}
#endregion
//统计
if ((HSSFCell)sheet.GetRow(dataarea + 40).GetCell(3) == null) //一个道理 为空 创建
{
ICell cell = (HSSFCell)sheet.GetRow(dataarea + 40).CreateCell(3);
}
((HSSFCell)sheet.GetRow(dataarea + 40).GetCell(3)).SetCellType(CellType.FORMULA); //设置表达式格式
//((HSSFRow)sheet.GetRow(dataarea + 40)).GetCell(3).SetCellValue("=SUM(D" + (dataarea + 1) + ":D" + (dataarea + 40) + ")");
((HSSFRow)sheet.GetRow(dataarea + 40)).GetCell(3).SetCellFormula("SUM(D" + (dataarea + 1) + ":D" + (dataarea + 40) + ")"); //设置表达式的值 不用=
相关文章
- groovy : poi 导出 Excel xlsx
- 接口自动化框架脚手架-从Excel读取用例发起调用做断言
- 1 npoi 网上 不用模板 设置密码 workbook.WriteProtectWorkbook("password", "admin"); 、、 2 locked.IsLocked = true; sheet1.ProtectSheet("password");NPOI操作EXCEL--设置密码才可以修改单元格内容 3 模板设置密码 确定原密码 设置新密码
- vxe-table 导出Excel 超过100条,自定义模板template替换失效
- JavaDemo——POI写Excel
- 【Excel】+ 高亮显示当前单元格所在的行与列
- 《从Excel到R 数据分析进阶指南》一3.4 更改数据格式
- 不会Python没关系,掌握Excel的36个技巧一样做数据分析
- Excel VLOOKUP实用教程之 05 vlookup如何从列表中获取最后一个值?(教程含数据excel)
- Excel教程之8个实用函数帮助我们清理和处理文本
- Excel VLOOKUP实用教程之 10 在使用 VLOOKUP 函数时处理错误?(教程含数据excel)
- 基于C#语言利用Microsoft.office.introp.excel操作Excel总结
- Python Excel自动化之 如何根据某一列快速对比两excel文件不同并输出不同内容
- Python Excel教程之如何将多个 excel 文件合并为一个文件(教程含源码)
- Excel VLOOKUP实用教程之 08 VLOOKUP如果实现区分大小写的查找?(教程含数据excel)
- Excel 函数教程之VLOOKUP实用教程与10个适用于初学者和高级用户的VLOOKUP案例(教程含数据excel)
- EXCEL-如何在excel中对图片进行批量排版
- 2.用Python套用Excel模板,一键完成原亮样式
- Python读取Json字典写入Excel表格的方法