Изменения в общедоступном API в Aspose.Cells 8.9.1
Добавленные API
Настройка источников шрифтов
Aspose.Cells for Java предоставляет набор классов для настройки источников шрифтов при визуализации электронных таблиц. Вот список добавленных классов с версией Aspose.Cells for Java 8.9.1.
- Класс FontConfigs определяет настройки шрифтов.
- Класс FontSourceBase является абстрактным базовым классом для классов, позволяющих пользователю указывать различные источники шрифтов.
- Класс FileFontSource представляет собой одиночный файл шрифта TrueType, хранящийся в файловой системе.
- Класс FolderFontSource представляет собой папку, содержащую файлы шрифтов TrueType.
- Класс MemoryFontSource представляет собой одиночный файл шрифта TrueType, хранящийся в памяти.
- Перечисление FontSourceType определяет тип источника шрифта.
С упомянутыми выше изменениями в Aspose.Cells for Java можно устанавливать шрифты, подробности указаны ниже.
- Установить одну пользовательскую папку шрифтов с помощью метода FontConfigs.setFontFolder.
- Установить несколько пользовательских папок шрифтов с помощью метода FontConfigs.setFontFolders.
- Установить источники шрифтов из пользовательской папки шрифтов, одиночного файла шрифта или данных шрифта из массива байтов с помощью метода FontConfigs.setFontSources.
Вот пример простого сценария использования указанных выше методов.
Java
//Defining string variables to store paths to font folders & font file
String fontFolder1 = "D:/Arial";
String fontFolder2 = "D:/Calibri";
String fontFile = "D:/Arial/arial.ttf";
//Setting first font folder with setFontFolder method
//Second parameter directs the API to search the sub folders for font files
FontConfigs.setFontFolder(fontFolder1, true);
//Setting both font folders with setFontFolders method
//Second parameter prohibits the API to search the sub folders for font files
FontConfigs.setFontFolders(new String[] { fontFolder1, fontFolder2 }, false);
//Defining FolderFontSource
FolderFontSource sourceFolder = new FolderFontSource(fontFolder1, false);
//Defining FileFontSource
FileFontSource sourceFile = new FileFontSource(fontFile);
//Defining MemoryFontSource
byte[] bytes = Files.readAllBytes(new File(fontFile).toPath());
MemoryFontSource sourceMemory = new MemoryFontSource(bytes);
//Setting font sources
FontConfigs.setFontSources(new FontSourceBase[] { sourceFolder, sourceFile, sourceMemory});
Aspose.Cells for Java также позволяет конфигурировать подстановку шрифтов. Этот механизм полезен, когда требуемый шрифт недоступен на машине, где должно произойти преобразование. Пользователи могут предоставить список имен шрифтов в качестве альтернативы изначально требуемому шрифту. Для этого API Aspose.Cells предоставляет метод FontConfigs.setFontSubstitutes, который принимает 2 параметра. Первый параметр имеет тип string, которое должно быть именем шрифта, который требуется заменить. Второй параметр - массив типа string. Пользователи могут предоставить список имен шрифтов в качестве замены для изначального имени шрифта (указанного в первом параметре).
Вот пример простого сценария использования метода FontConfigs.SetFontSubstitutes.
Java
//Substituting the Arial font with Times New Roman & Calibri
FontConfigs.setFontSubstitutes("Arial", new String[] { "Times New Roman", "Calibri" });
Aspose.Cells for Java также предоставляет средства для получения информации о заданных источниках и замене шрифтов.
- Метод FontConfigs.getFontSources возвращает массив типа FontSourceBase, содержащий список указанных источников шрифтов. Если источники не были установлены, метод FontConfigs.getFontSources вернет пустой массив.
- Метод FontConfigs.getFontSubstitutes принимает параметр типа string, позволяя указать имя шрифта, для которого задана замена. Если замена не была установлена для указанного имени шрифта, то метод FontConfigs.getFontSubstitutes вернет null.
Добавлен интерфейс IFilePathProvider и свойство HtmlSaveOptions.FilePathProvider
Aspose.Cells for Java 8.9.1 позволяет получать/устанавливать IFilePathProvider для экспорта листов книги в отдельные файлы HTML. Эти новые API полезны в ситуациях, когда гиперссылки на одном листе указывают на местонахождение на другом листе, и требуется рендерить каждый лист в отдельный файл HTML. Реализация IFilePathProvider позволяет сохранить указанные гиперссылки независимо от того, указывают ли они на местоположение в отдельном файле HTML.
Вот простой сценарий использования свойства HtmlSaveOptions.FilePathProvider.
Java
//Load a spreadsheet in an instance of Workbook
Workbook book = new Workbook(dir + "sample.xlsx");
//Save each Worksheet to separate HTML file
for (int i = 0; i < book.getWorksheets().getCount(); i++)
{
book.getWorksheets().setActiveSheetIndex(i);
//Create an instance of HtmlSaveOptions & set FilePathProvider property
HtmlSaveOptions options = new HtmlSaveOptions();
options.setExportActiveWorksheetOnly(true);
options.setFilePathProvider(new IFilePathProvider()
{
public String getFullName(String sheetName)
{
if ("Sheet2".equals(sheetName))
{
return "sheet1.html";
}
else if ("Sheet3".equals(sheetName))
{
return "sheet2.html";
}
return "";
}
});
//Write HTML file to disc
book.save(dir + "sheet"+ i +".html", options);
}
Добавлены свойство CopyOptions.ReferToDestinationSheet и перегрузка метода Cells.copyRows
API Aspose.Cells for Java добавил свойство типа Boolean CopyOptions.ReferToDestinationSheet вместе с перегрузкой метода Cells.copyRows для облегчения операции копирования строк, когда строки для копирования также содержат диаграмму и ее исходные данные. Разработчики могут использовать эти новые API, чтобы связать источник данных диаграммы со стартовым или конечным листом.
Вот простой сценарий использования.
Java
//Load a sample spreadsheet in an instance of Workbook
Workbook book = new Workbook(dir + "sample.xlsx");
//Access the worksheet containing the chart & its data source
Worksheet source = book.getWorksheets().get(0);
//Add a new worksheet to the collection
Worksheet destination = book.getWorksheets().get(book.getWorksheets().add());
//Initialize CopyOptions and set its ReferToDestinationSheet property to true
CopyOptions options = new CopyOptions();
options.setReferToDestinationSheet(true);
//Copy the rows
destination.getCells().copyRows(source.getCells(), 0, 0, source.getCells().getMaxDisplayRange().getRowCount(), options);
//Save the result on disc
book.save(dir + "output.xlsx");
Добавлено свойство CalculationOptions.Recursive
Aspose.Cells for Java 8.9.1 добавил свойство типа Boolean CalculationOptions.Recursive. Установка свойства CalculationOptions.Recursive в true и передача объекта в метод Workbook.calculateFormula указывает API Aspose.Cells на рекурсивное вычисление зависимых ячеек при вычислении ячеек, зависящих от других ячеек.
Вот простой сценарий использования.
Java
//Load a sample spreadsheet in an instance of Workbook
Workbook book = new Workbook(dir + "sample.xlsx");
//Initialize CalculationOptions & set Recursive property to true
CalculationOptions options = new CalculationOptions();
options.setRecursive(true);
//Recalculate formulas
book.calculateFormula(options);
Устаревшие API
Свойство CellsHelper.FontDir устарело
Рекомендуется использовать метод FontConfigs.setFontFolder(String, boolean) с рекурсивным параметром false вместо.
Свойство CellsHelper.FontDirs устарело
Рекомендуется использовать метод FontConfigs.setFontFolders(String[], boolean) с рекурсивным параметром false вместо.
Свойство CellsHelper.FontFiles устарело
Рекомендуется использовать метод FontConfigs.setFontSources(FontSourceBase[]) вместо.