本文整理汇总了Java中org.apache.poi.ss.usermodel.Cell.setCellFormula方法的典型用法代码示例。如果您正苦于以下问题:Java Cell.setCellFormula方法的具体用法?Java Cell.setCellFormula怎么用?Java Cell.setCellFormula使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.poi.ss.usermodel.Cell
的用法示例。
在下文中一共展示了Cell.setCellFormula方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: setupTotalCell
import org.apache.poi.ss.usermodel.Cell; //导入方法依赖的package包/类
protected void setupTotalCell(Cell cell, final String propId, final int currentRow, final int startRow, int col) {
cell.setCellStyle(getCellStyle(propId, currentRow, startRow, col, true));
final HorizontalAlignment poiAlignment = getGridHolder().getCellAlignment(propId);
CellUtil.setAlignment(cell, poiAlignment);
Class<?> propType = getGridHolder().getPropertyType(propId);
if (isNumeric(propType)) {
CellRangeAddress cra = new CellRangeAddress(startRow, currentRow - 1, col, col);
if (isHierarchical()) {
// 9 & 109 are for sum. 9 means include hidden cells, 109 means exclude.
// this will show the wrong value if the user expands an outlined category, so
// we will range value it first
cell.setCellFormula("SUM(" + cra.formatAsString(hierarchicalTotalsSheet.getSheetName(),
true) + ")");
} else {
cell.setCellFormula("SUM(" + cra.formatAsString() + ")");
}
} else {
if (0 == col) {
cell.setCellValue(createHelper.createRichTextString("Total"));
}
}
}
示例2: sumRatingsUp
import org.apache.poi.ss.usermodel.Cell; //导入方法依赖的package包/类
/**
* generates the sum over all competences
* @param rowNumPR
* @param rowPR
*/
private static void sumRatingsUp(int rowNumPR, Row rowPR) {
//SUM of all NOVICE ratings
CellReference cellRefNoviceFirst = new CellReference(1, COLUMN_NOVICE);
CellReference cellRefNoviceLast = new CellReference(rowNumPR-1, COLUMN_NOVICE);
Cell cellPR = rowPR.createCell(COLUMN_NOVICE);
cellPR.setCellFormula("SUM("+cellRefNoviceFirst.formatAsString()+":"+cellRefNoviceLast.formatAsString()+")");
//SUM of all INTERMEDIATE ratings
CellReference cellRefIntermediateFirst = new CellReference(1, COLUMN_INTERMEDIATE);
CellReference cellRefIntermediateLast = new CellReference(rowNumPR-1, COLUMN_INTERMEDIATE);
cellPR = rowPR.createCell(COLUMN_INTERMEDIATE);
cellPR.setCellFormula("SUM("+cellRefIntermediateFirst.formatAsString()+":"+cellRefIntermediateLast.formatAsString()+")");
//SUM of all EXPERT ratings
CellReference cellRefExpertFirst = new CellReference(1, COLUMN_EXPERT);
CellReference cellRefExpertLast = new CellReference(rowNumPR-1, COLUMN_EXPERT);
cellPR = rowPR.createCell(COLUMN_EXPERT);
cellPR.setCellFormula("SUM("+cellRefExpertFirst.formatAsString()+":"+cellRefExpertLast.formatAsString()+")");
//SUM of all IRRELEVANT ratings
CellReference cellRefIrrelevantFirst = new CellReference(1, COLUMN_IRRELEVANT);
CellReference cellRefIrrelevantLast = new CellReference(rowNumPR-1, COLUMN_IRRELEVANT);
cellPR = rowPR.createCell(COLUMN_IRRELEVANT);
cellPR.setCellFormula("SUM("+cellRefIrrelevantFirst.formatAsString()+":"+cellRefIrrelevantLast.formatAsString()+")");
}
示例3: copyCellByBlankSpace
import org.apache.poi.ss.usermodel.Cell; //导入方法依赖的package包/类
/**
* 复制单位格(空白行的复制,即只复制格式和固定文字,不填充数据)
*
* @author ZhengWei(HY)
* @createDate 2017-07-03
* @version v1.0
*
* @param i_RTemplate 模板对象
* @param i_TemplateCell 模板中的单元格对象
* @param i_DataWorkbook 数据工作薄
* @param i_DataCell 数据中的单元格对象
* @param io_RSystemValue 系统变量信息
* @param i_Datas 本行对应的数据
* @param io_RValue 小计循环的迭代器
* @return
*/
public final static void copyCellByBlankSpace(RTemplate i_RTemplate ,Cell i_TemplateCell ,RWorkbook i_DataWorkbook ,Cell i_DataCell ,RSystemValue io_RSystemValue)
{
// 复制样式
i_DataCell.setCellStyle(i_DataWorkbook.getCellStyle(i_RTemplate ,i_TemplateCell.getCellStyle().getIndex()));
// 复制评论
copyComment(i_RTemplate ,i_TemplateCell ,i_DataWorkbook ,i_DataCell);
// 复制数据类型
CellType v_CellType = i_TemplateCell.getCellTypeEnum();
// i_DataCell.setCellType(v_CellType); 不能在此统一设置,原因是:下面代码对类型是有浮动的
if ( v_CellType == CellType.NUMERIC )
{
i_DataCell.setCellType(v_CellType);
if ( HSSFDateUtil.isCellDateFormatted(i_TemplateCell) )
{
i_DataCell.setCellValue(i_TemplateCell.getDateCellValue());
}
else
{
i_DataCell.setCellValue(i_TemplateCell.getNumericCellValue());
}
}
else if ( v_CellType == CellType.STRING )
{
RichTextString v_TemplateRichText = i_TemplateCell.getRichStringCellValue();
String v_ValueName = v_TemplateRichText.toString();
if ( i_RTemplate.isExists(v_ValueName) )
{
i_DataCell.setCellType(v_CellType);
i_DataCell.setCellValue("");
}
else
{
i_DataCell.setCellType(v_CellType);
copyRichTextStyle(i_RTemplate ,v_TemplateRichText ,i_DataWorkbook ,i_DataCell);
}
}
else if ( v_CellType == CellType.BOOLEAN )
{
i_DataCell.setCellType(v_CellType);
i_DataCell.setCellValue(i_TemplateCell.getBooleanCellValue());
}
else if ( v_CellType == CellType.FORMULA)
{
i_DataCell.setCellType(v_CellType);
i_DataCell.setCellFormula(i_TemplateCell.getCellFormula());
}
else
{
// Nothing.
i_DataCell.setCellType(v_CellType);
}
}
示例4: computeAveragePrecision
import org.apache.poi.ss.usermodel.Cell; //导入方法依赖的package包/类
/**
* generates the average precisions
* @param rowPR
*/
private static void computeAveragePrecision(Row rowPR) {
//[email protected]
CellReference cellRefRelevant10First = new CellReference(1, COLUMN_RELEVANT);
CellReference cellRefRelevant10Last = new CellReference(10, COLUMN_RELEVANT);
CellReference cellRefAvgAt10First = new CellReference(1, COLUMN_AVG_At_10);
CellReference cellRefAvgAt10Last = new CellReference(10, COLUMN_AVG_At_10);
Cell cellPR = rowPR.createCell(COLUMN_AVG_At_10);
cellPR.setCellFormula("SUMIF("+cellRefRelevant10First.formatAsString()
+":"+cellRefRelevant10Last.formatAsString()+",1,"
+cellRefAvgAt10First.formatAsString()
+":"+cellRefAvgAt10Last.formatAsString()
+")/SUM("+cellRefRelevant10First.formatAsString()
+":"+cellRefRelevant10Last.formatAsString()+")");
//[email protected]
CellReference cellRefRelevant25First = new CellReference(1, COLUMN_RELEVANT);
CellReference cellRefRelevant25Last = new CellReference(25, COLUMN_RELEVANT);
CellReference cellRefAvgAt25First = new CellReference(1, COLUMN_AVG_At_25);
CellReference cellRefAvgAt25Last = new CellReference(25, COLUMN_AVG_At_25);
cellPR = rowPR.createCell(COLUMN_AVG_At_25);
cellPR.setCellFormula("SUMIF("+cellRefRelevant25First.formatAsString()
+":"+cellRefRelevant25Last.formatAsString()+",1,"
+cellRefAvgAt25First.formatAsString()
+":"+cellRefAvgAt25Last.formatAsString()
+")/SUM("+cellRefRelevant25First.formatAsString()
+":"+cellRefRelevant25Last.formatAsString()+")");
//[email protected]
CellReference cellRefRelevant50First = new CellReference(1, COLUMN_RELEVANT);
CellReference cellRefRelevant50Last = new CellReference(50, COLUMN_RELEVANT);
CellReference cellRefAvgAt50First = new CellReference(1, COLUMN_AVG_At_50);
CellReference cellRefAvgAt50Last = new CellReference(50, COLUMN_AVG_At_50);
cellPR = rowPR.createCell(COLUMN_AVG_At_50);
cellPR.setCellFormula("SUMIF("+cellRefRelevant50First.formatAsString()
+":"+cellRefRelevant50Last.formatAsString()+",1,"
+cellRefAvgAt50First.formatAsString()
+":"+cellRefAvgAt50Last.formatAsString()
+")/SUM("+cellRefRelevant50First.formatAsString()
+":"+cellRefRelevant50Last.formatAsString()+")");
}
示例5: generateSheetData
import org.apache.poi.ss.usermodel.Cell; //导入方法依赖的package包/类
private static void generateSheetData(final Sheet sheet, final CellStyle style, short startingRow) {
int currentRow = startingRow;
// Create first row values
Row row1 = sheet.createRow(currentRow++);
row1.createCell(0).setCellValue(1.0);
row1.createCell(1).setCellValue("One");
row1.createCell(2).setCellValue("One");
Cell c13 = row1.createCell(3);
c13.setCellValue(LocaleUtil.getLocaleCalendar(1983, 04/*zero based*/, 18, 4, 0, 0));
c13.setCellStyle(style);
Cell c14 = row1.createCell(4);
c14.setCellFormula("A2+1");
// For formulas we read pre-computed values. Editors set the precomputed value by default. We need to add it here
// explicitly as the library doesn't pre compute the formula value.
c14.setCellValue(2.0d);
row1.createCell(5).setCellValue(true);
row1.createCell(6).setCellFormula("B2*20");
row1.createCell(6).setCellValue("#ERROR");
// Create second row values
Row row2 = sheet.createRow(currentRow++);
row2.createCell(0).setCellValue(2.0);
row2.createCell(1).setCellValue("Two");
row2.createCell(2).setCellValue("Two");
Cell c23 = row2.createCell(3);
c23.setCellValue(LocaleUtil.getLocaleCalendar(2013, 06/*zero based*/, 05, 5, 0, 1));
c23.setCellStyle(style);
Cell c24 = row2.createCell(4);
c24.setCellFormula("A3+1");
c24.setCellValue(3.0d);
row2.createCell(5).setCellValue(false);
row2.createCell(6).setCellFormula("B3*20");
row2.createCell(6).setCellValue("#ERROR");
// Create third row values
Row row3 = sheet.createRow(currentRow++);
row3.createCell(0).setCellValue(3.0);
row3.createCell(1).setCellValue("Three and Three");
row3.createCell(5).setCellValue(false);
// Create fourth row values
Row row4 = sheet.createRow(currentRow++);
row4.createCell(0).setCellValue(4.0);
row4.createCell(1).setCellValue("Four and Four, Five and Five");
// Create fifth row values
Row row5 = sheet.createRow(currentRow++);
row5.createCell(0).setCellValue(5.0);
sheet.addMergedRegion(new CellRangeAddress(startingRow + 2, startingRow + 2, 1, 2));
sheet.addMergedRegion(new CellRangeAddress(startingRow + 2, startingRow + 4, 5, 5));
sheet.addMergedRegion(new CellRangeAddress(startingRow + 3, startingRow + 4, 1, 2));
}
示例6: computeIDCG_nDCG
import org.apache.poi.ss.usermodel.Cell; //导入方法依赖的package包/类
/**
* generates the IDCG and nDCG
* @param prec_recall
* @param rowPR
* @param ratings
*/
private static void computeIDCG_nDCG(Sheet prec_recall, Row rowPR, ArrayList<Rating> ratings) {
CellReference cellRefDCGFirst = new CellReference(1, COLUMN_DCG);
CellReference cellRefDCGLast = new CellReference(50, COLUMN_DCG);
Cell cellPR = rowPR.createCell(COLUMN_DCG);
cellPR.setCellFormula("SUM("+cellRefDCGFirst.formatAsString()
+":"+cellRefDCGLast.formatAsString()+")");
//Get the List of ratings and sort them by relevance (rating)
Collections.sort(ratings, new Comparator<Rating>() {
@Override
public int compare(Rating o1, Rating o2) {
return Float.compare(o2.rating, o1.rating);
}
});
//go through the sheet again and add the ideal rank
int current_position = 1;
for (Iterator<Rating> it = ratings.iterator(); it.hasNext();) {
int rank = it.next().getCompetenceRank();
Row rowPR2 = prec_recall.getRow(rank);
//CellReference cellRef = new CellReference(row.getRowNum(), cell.getColumnIndex());
cellPR = rowPR2.createCell(COLUMN_IDEAL_RANK, Cell.CELL_TYPE_NUMERIC);
cellPR.setCellValue(current_position);
CellReference cellRefNovice = new CellReference(rowPR2.getRowNum(), COLUMN_NOVICE);
CellReference cellRefIrrelevant = new CellReference(rowPR2.getRowNum(), COLUMN_IRRELEVANT);
CellReference cellRefNoviceWeight = new CellReference(0, COLUMN_NOVICE);
CellReference cellRefIrrelevantWeight = new CellReference(0, COLUMN_IRRELEVANT);
CellReference cellRefIdealRank = new CellReference(rowPR2.getRowNum(), COLUMN_IDEAL_RANK);
cellPR = rowPR2.createCell(COLUMN_IDCG, Cell.CELL_TYPE_NUMERIC);
//LOG 1 is not defined
if(current_position==1)
cellPR.setCellFormula("SUMIF("+cellRefNovice.formatAsString()+":"+cellRefIrrelevant.formatAsString()+",1,"+cellRefNoviceWeight.formatAsString()+":"+cellRefIrrelevantWeight.formatAsString()+")");
else
cellPR.setCellFormula("SUMIF("+cellRefNovice.formatAsString()+":"+cellRefIrrelevant.formatAsString()+",1,"+cellRefNoviceWeight.formatAsString()+":"+cellRefIrrelevantWeight.formatAsString()+")/LOG("+cellRefIdealRank.formatAsString()+",2)");
current_position++;
}
//sum of iDCG
cellPR = rowPR.createCell(COLUMN_IDCG, Cell.CELL_TYPE_NUMERIC);
CellReference cellRefIDCGFirst = new CellReference(1, COLUMN_IDCG);
CellReference cellRefIDCGLast = new CellReference(50, COLUMN_IDCG);
cellPR.setCellFormula("SUM("+cellRefIDCGFirst.formatAsString()+":"+cellRefIDCGLast.formatAsString()+")");
//nDCG
CellReference cellRefDCG = new CellReference(rowPR.getRowNum(), COLUMN_DCG);
CellReference cellRefIDCG = new CellReference(rowPR.getRowNum(), COLUMN_IDCG);
cellPR = rowPR.createCell(COLUMN_nDCG, Cell.CELL_TYPE_NUMERIC);
cellPR.setCellFormula("SUM("+cellRefDCG.formatAsString()+"/"+cellRefIDCG.formatAsString()+")");
}