# 本地化公式

## Content

GcExcel 在 **IRange** 接口中提供了**setFormulaLocal** 和**getFormulaR1C1Local** 方法，可用于检索或设置工作表单元格中的本地化公式。

> **注意**：这些方法仅支持日本和中国文化的本地化公式。

请参考以下示例代码，该代码使用了日本文化中的 ASC 和 JIS 函数，并比较了不同的公式方法。

```Java
//create a new workbook
Workbook workbook = new Workbook();
workbook.setCulture(Locale.JAPAN);
IWorksheet sheet = workbook.getActiveSheet();

sheet.getRange("$A$1:$A$3").setValue(new String[][] { { "Original" }, { "ゴールドシップは1番人気です。" }, { "Halfwidth" } });

sheet.getRange("A5").setValue("Fullwidth");

IRange a4 = sheet.getRange("A4");
IRange a6 = sheet.getRange("A6");

// Equivalent: Formula = "ASC(A2)"
// Because ASC doesn't have localized name in Japanese Excel.
a4.setFormulaLocal("=ASC(A2)");

// Equivalent: Formula = "DBCS(A2)"
// Because JIS is localized name of DBCS in Japanese Excel.
a6.setFormulaLocal("=JIS(A2)");

// Compare different formula properties.
sheet.getRange("$B$1:$F$1")
.setValue(new String[][] { { "FormulaLocal", "Formula", "FormulaR1C1Local", "FormulaR1C1" } });

sheet.getRange("$B$4:$E$4").setValue(new Object[][] {
{ a4.getFormulaLocal(), a4.getFormula(), a4.getFormulaR1C1Local(), a4.getFormulaR1C1() } });

sheet.getRange("$B$6:$E$6").setValue(new Object[][] {
{ a6.getFormulaLocal(), a6.getFormula(), a6.getFormulaR1C1Local(), a6.getFormulaR1C1() } });

// Arrange layout
sheet.getUsedRange().getColumns().autoFit();
sheet.getPageSetup().setIsPercentScale(false);
sheet.getPageSetup().setFitToPagesWide(1);
sheet.getPageSetup().setPrintHeadings(true);
    
//save to an pdf file
workbook.save("FormulaLocalAndJis.pdf");
```

下图显示了上述代码的输出：

![jis and asc function with localized formula properties](https://gccndocumentsitestorage.blob.core.chinacloudapi.cn/document-site-files/images/f122ea44-24a9-4d7e-86a7-35e2be63ee1e/formula_local_properties.PNG)

> **注意**：Excel 不支持多字节字符串转换。 因此，输出将保存为 PDF 文件。