Implementieren Sie Cell.FormulaLocal ähnlich wie Excel VBA Range.FormulaLocal
Mögliche Verwendungsszenarien
Microsoft Excel-Formeln können in verschiedenen Sprach- oder Regionslokalen unterschiedliche Namen haben. Zum Beispiel wird die SUM-Funktion im Deutschen als SUMME bezeichnet. Aspose.Cells kann nicht mit Funktionen arbeiten, die keine englischen Namen haben. In Microsoft Excel VBA gibt es die Eigenschaft Range.FormulaLocal, die den Namen der Funktion je nach Sprache oder Region zurückgibt. Aspose.Cells bietet auch die Cell.FormulaLocal-Eigenschaft für diesen Zweck. Allerdings funktioniert diese Eigenschaft nur, wenn Sie die Methode GlobalizationSettings.getLocalFunctionName(String standardName) implementieren.
Implementieren Sie Cell.FormulaLocal ähnlich wie Excel VBA Range.FormulaLocal
Der folgende Beispielcode erläutert, wie die Methode GlobalizationSettings.getLocalFunctionName(String standardName) implementiert wird. Die Methode gibt den lokalen Namen der Standardfunktion zurück. Wenn der Standardfunktionsname SUM ist, gibt sie UserFormulaLocal_SUM zurück. Sie können den Code nach Ihren Bedürfnissen ändern und die korrekten lokalen Funktionsnamen zurückgeben, z.B. SUM ist SUMME auf Deutsch und TEXT ist ТЕКСТ auf Russisch. Bitte beachten Sie auch die Konsolenausgabe des untenstehenden Beispielcodes als Referenz.
Beispielcode
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
package AsposeCellsExamples.WorkbookSettings; | |
import com.aspose.cells.*; | |
import AsposeCellsExamples.Utils; | |
public class Implement_Cell_FormulaLocal_SimilarTo_Range_FormulaLocal { | |
//Implement GlobalizationSettings class | |
class GS extends GlobalizationSettings { | |
public String getLocalFunctionName(String standardName) | |
{ | |
//Change the SUM function name as per your needs. | |
if(standardName.equals("SUM")) | |
{ | |
return "UserFormulaLocal_SUM"; | |
} | |
//Change the AVERAGE function name as per your needs. | |
if (standardName.equals("AVERAGE")) | |
{ | |
return "UserFormulaLocal_AVERAGE"; | |
} | |
return ""; | |
}//getLocalFunctionName | |
}//GS extends GlobalizationSettings | |
public void Run() throws Exception { | |
//Create workbook | |
Workbook wb = new Workbook(); | |
//Assign GlobalizationSettings implementation class | |
wb.getSettings().setGlobalizationSettings(new GS()); | |
//Access first worksheet | |
Worksheet ws = wb.getWorksheets().get(0); | |
//Access some cell | |
Cell cell = ws.getCells().get("C4"); | |
//Assign SUM formula and print its FormulaLocal | |
cell.setFormula("SUM(A1:A2)"); | |
System.out.println("Formula Local: " + cell.getFormulaLocal()); | |
//Assign AVERAGE formula and print its FormulaLocal | |
cell.setFormula("=AVERAGE(B1:B2, B5)"); | |
System.out.println("Formula Local: " + cell.getFormulaLocal()); | |
} | |
public static void main(String[] args) throws Exception { | |
System.out.println("Aspose.Cells for Java Version: " + CellsHelper.getVersion()); | |
Implement_Cell_FormulaLocal_SimilarTo_Range_FormulaLocal pg = new Implement_Cell_FormulaLocal_SimilarTo_Range_FormulaLocal(); | |
pg.Run(); | |
// Print the message | |
System.out.println("Implement_Cell_FormulaLocal_SimilarTo_Range_FormulaLocal executed successfully."); | |
} | |
} |
Konsolenausgabe
Formula Local: =UserFormulaLocal_SUM(A1:A2)
Formula Local: =UserFormulaLocal_AVERAGE(B1:B2,B5)