Общедоступный 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, который должен быть именем шрифта, который необходимо заменить. Второй параметр представляет собой массив строкового типа. Пользователи могут предоставить список имен шрифтов в качестве замены исходного имени шрифта (указывается в первом параметре).
Вот простой сценарий использования метода 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
//Загружаем электронную таблицу в экземпляр Workbook
Книга рабочей книги = новая рабочая книга (каталог + "sample.xlsx");
// Сохраняем каждый рабочий лист в отдельный файл HTML
для (целое я = 0; я< 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.
Aspose.Cells for Java API предоставил свойство 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 предоставил свойство 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[]).