Использование класса ChartGlobalizationSettings для установки различных языков для компонента графика с помощью JavaScript через C++
Возможные сценарии использования
API Aspose.Cells предоставили класс ChartGlobalizationSettings для сценариев, когда пользователь желает установить язык элементов графика и пользовательские метки для промежуточных итогов в электронной таблице.
Введение в класс ChartGlobalizationSettings
Класс ChartGlobalizationSettings в настоящее время предлагает 8 методов, которые можно переопределить в пользовательском классе для перевода таких элементов, как название AxisTitle, название AxisUnit, название ChartTitle и т. д. на разные языки.
- ChartGlobalizationSettings.axisTitleName: Получает название заголовка для оси.
- ChartGlobalizationSettings.axisUnitName(DisplayUnitType): Получает название единицы оси.
- ChartGlobalizationSettings.chartTitleName: Получает название заголовка диаграммы.
- ChartGlobalizationSettings.legendDecreaseName: Получает название уменьшения для легенды.
- ChartGlobalizationSettings.legendIncreaseName: Получает название Increase для легенды.
- ChartGlobalizationSettings.legendTotalName: Получает название итога для легенды.
- ChartGlobalizationSettings.otherName: Получает название меток “Другие” для диаграммы.
- ChartGlobalizationSettings.seriesName: Получает название серии в диаграмме.
Пользовательский перевод языка
Здесь мы создадим водопадную диаграмму на основе следующих данных. Названия компонентов диаграммы будут отображаться на английском языке. Мы воспользуемся турецким примером, чтобы показать, как отображать заголовок диаграммы, наименования увеличения/уменьшения в легенде, общее наименование и заголовок оси на турецком языке.

Образец кода
В следующем образце кода загружается образец файла Excel.
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Chart Globalization Settings Example</title>
</head>
<body>
<h1>Chart Globalization Settings Example (Turkey)</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx,.csv" />
<button id="runExample">Run Example</button>
<a id="downloadLink" style="display: none;">Download Result</a>
<div id="result"></div>
</body>
<script src="aspose.cells.js.min.js"></script>
<script type="text/javascript">
const { Workbook, SaveFormat } = AsposeCells;
AsposeCells.onReady({
license: "/lic/aspose.cells.enc",
fontPath: "/fonts/",
fontList: [
"arial.ttf",
"NotoSansSC-Regular.ttf"
]
}).then(() => {
console.log("Aspose.Cells initialized");
});
// Define TurkeyChartGlobalizationSettings by converting getXxx methods to properties
class TurkeyChartGlobalizationSettings extends AsposeCells.ChartGlobalizationSettings {
constructor() {
super();
this.chartTitleName = "Grafik Başlığı"; // Chart Title
this.legendIncreaseName = "Artış"; // Increase
this.legendDecreaseName = "Düşüş"; // Decrease
this.legendTotalName = "Toplam"; // Total
this.axisTitleName = "Eksen Başlığı"; // Axis Title
}
}
document.getElementById('runExample').addEventListener('click', async () => {
const fileInput = document.getElementById('fileInput');
const resultDiv = document.getElementById('result');
resultDiv.innerHTML = '';
if (!fileInput.files.length) {
resultDiv.innerHTML = '<p style="color: red;">Please select an Excel file.</p>';
return;
}
// No try-catch: let errors propagate
const file = fileInput.files[0];
const arrayBuffer = await file.arrayBuffer();
// Instantiate Workbook from uploaded file
const workbook = new Workbook(new Uint8Array(arrayBuffer));
// Set custom chartGlobalizationSettings (Turkey)
workbook.settings.globalizationSettings.chartSettings = new TurkeyChartGlobalizationSettings();
// Access the first worksheet and its charts
const worksheet = workbook.worksheets.get(0);
const chartCollection = worksheet.charts;
const chart = chartCollection.get(0);
// Calculate the chart
chart.calculate();
// Get the chart title text
const title = chart.title;
const titleText = title ? title.text : "(No Title)";
// Prepare output messages
const messages = [];
messages.push('<p style="color: green;">Operation completed successfully!</p>');
messages.push(`<p>Workbook chart title: ${titleText}</p>`);
// Get legend labels and output them
const legendEntriesLabels = chart.legend.legendLabels;
if (legendEntriesLabels && legendEntriesLabels.forEach) {
const legendItems = [];
legendEntriesLabels.forEach(label => {
legendItems.push(`<li>${label}</li>`);
});
if (legendItems.length) {
messages.push('<p>Workbook chart legend:</p>');
messages.push(`<ul>${legendItems.join('')}</ul>`);
} else {
messages.push('<p>(No legend labels found)</p>');
}
} else {
messages.push('<p>(No legend or legend labels available)</p>');
}
// Save modified workbook to allow download (optional)
const outputData = workbook.save(SaveFormat.Xlsx);
const blob = new Blob([outputData]);
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'output.xlsx';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Modified Excel File';
resultDiv.innerHTML = messages.join('');
});
</script>
</html>
Вывод, созданный образцовым кодом
Это вывод консоли вышеуказанного образца кода.
Workbook chart title: Grafik Başlığı
Workbook chart legend: Artış
Workbook chart legend: Düşüş
Workbook chart legend: Toplam
Workbook category axis title: Eksen Başlığı