2016-08-10 1 views
0

Y a-t-il moyen d'ajouter une formule dans une table en utilisant l'API aspose java? J'écris un code pour générer une ligne agrégée mais je recherche liée pour le contrôle du contenu de la formule.Comment ajouter FieldFormula dans la cellule en utilisant le mot aspose dans java

J'ai trouvé API FieldFormula, ce champ API. Pouvons-nous ajouter un champ dans la cellule?

private void prepareAggregateRow(Table table, Row headerRow, Map<String, WsAttribute> attrValueMap, List<Attribute> attrDefs) throws Exception{ 
     Row totalRow = (Row)headerRow.deepClone(true); 
     for (Attribute attribute : attrDefs) { 
      WsAttribute wsAttribute = attrValueMap.get(attribute.getName()); 
      Cell cell = totalRow.getCells().get(attribute.getIdx()); 
      Run run = (Run)cell.getChild(NodeType.RUN, 0,true); 
      if(wsAttribute!=null && wsAttribute.getValue()!=null) { 
       run.setText(wsAttribute.getValue()); 
      } else { 
       run.setText(""); 
      } 
     } 
     table.appendChild(totalRow); 
    } 
+0

Il semble que ce soit Aspose.Words problème pas Aspose.Cells. Veuillez supprimer la balise Aspose.Cells et ajouter la balise Aspose.Words afin que la communauté Aspose.Words puisse vous aider à résoudre ce problème. Je vous remercie. – shakeel

Répondre

1

FieldBuilder classe crée un champ à partir des jetons de code de champ (arguments et commutateurs). L'exemple de code suivant insère la FieldFormula dans la cellule de la table. J'espère que cela vous aide.

Document doc = new Document(MyDir + "in.docx"); 
DocumentBuilder builder = new DocumentBuilder(doc); 

Table table = (Table)doc.getChild(NodeType.TABLE, 0, true); 
Cell cell = table.getFirstRow().getFirstCell(); 
builder.moveTo(cell.getFirstParagraph()); 

FieldBuilder fbuilder = new FieldBuilder(FieldType.FIELD_FORMULA); 
fbuilder.addArgument("20000").addSwitch("\\# \"#,##0\"").buildAndInsert(builder.getCurrentParagraph()); 

doc.updateFields(); 
doc.save(MyDir + "Out.docx"); 

Je travaille avec Aspose comme développeur évangéliste.

+0

Merci pour votre réponse. Cela a été fait de la même manière. Il existe un autre moyen d'ajouter du code de champ dans 'builder.insertField' et de définir une formule pour celui-ci. – iMBMT