Изменения в общедоступном API в Aspose.Cells 8.9.1
Добавленные API
Настройка источников шрифтов
Aspose.Cells for .NET добавил несколько классов для поддержки настраиваемых источников шрифтов для отображения электронных таблиц. Вот список классов, которые были добавлены с Aspose.Cells for .NET 8.9.1.
- Класс FontConfigs определяет настройки шрифтов.
- Класс FontSourceBase является абстрактным базовым классом для классов, позволяющих пользователю указывать различные источники шрифтов.
- Класс FileFontSource представляет собой одиночный файл шрифта TrueType, хранящийся в файловой системе.
- Класс FolderFontSource представляет собой папку, содержащую файлы шрифтов TrueType.
- Класс MemoryFontSource представляет собой одиночный файл шрифта TrueType, хранящийся в памяти.
- Перечисление FontSourceType определяет тип источника шрифта.
С учетом вышеперечисленных изменений Aspose.Cells for .NET позволяет установить шрифты как описано ниже.
- Установите одну пользовательскую папку шрифтов при использовании метода FontConfigs.SetFontFolder.
- Установите несколько пользовательских папок шрифтов при использовании метода FontConfigs.SetFontFolders.
- Установите источники шрифтов из пользовательской папки шрифтов, одного файла шрифта или данных шрифта из массива байтов при использовании метода FontConfigs.SetFontSources.
Вот пример простого сценария использования указанных выше методов.
C#
// 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 subfolders for font files
FontConfigs.SetFontFolder(fontFolder1, true);
// Setting both font folders with SetFontFolders method
// Second parameter prohibits the API to search the subfolders 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
MemoryFontSource sourceMemory = new MemoryFontSource(System.IO.File.ReadAllBytes(fontFile));
//Setting font sources
FontConfigs.SetFontSources(new FontSourceBase[] { sourceFolder, sourceFile, sourceMemory});
Aspose.Cells for .NET также позволяет настроить замену шрифтов. Этот механизм полезен, когда необходимый шрифт недоступен на машине, где должно происходить преобразование. Пользователи могут предоставить список названий шрифтов в качестве альтернативы оригинально необходимому шрифту. Для этого API Aspose.Cells предоставляют метод FontConfigs.SetFontSubstitutes, который принимает два параметра. Первый параметр имеет тип string и должен быть именем шрифта, который нужно заменить. Второй параметр - массив типа string. Пользователи могут предоставить список названий шрифтов в качестве замены оригинальному названию шрифта (указанному в первом параметре).
Вот пример простого сценария использования метода FontConfigs.SetFontSubstitutes.
C#
// Substituting the Arial font with Times New Roman & Calibri
FontConfigs.SetFontSubstitutes("Arial", new string[] { "Times New Roman", "Calibri" });
Aspose.Cells for .NET также предоставляет средства для сбора информации о том, какие источники и замены были установлены.
- Метод FontConfigs.GetFontSources возвращает массив типа FontSourceBase, содержащий список заданных источников шрифтов. В случае, если источники не были установлены, метод FontConfigs.GetFontSources вернет пустой массив.
- Метод FontConfigs.GetFontSubstitutes принимает параметр типа string, позволяющий указать название шрифта, для которого установлена замена. В случае, если для указанного названия шрифта не установлена замена, метод FontConfigs.GetFontSubstitutes вернет null.
Добавлен интерфейс IFilePathProvider и свойство HtmlSaveOptions.FilePathProvider
Aspose.Cells for .NET 8.9.1 позволяет получить/установить интерфейс IFilePathProvider для экспорта листов в отдельные файлы HTML. Эти новые API полезны в сценариях, где ссылки на листе указывают на местоположение на другом листе, а требование приложения - рендерить каждый лист в отдельный файл HTML. Реализация IFilePathProvider позволяет сохранять упомянутые ссылки целыми, независимо от того, указывают ли они на местоположение в отдельном файле HTML или нет.
Вот простой сценарий использования свойства HtmlSaveOptions.FilePathProvider.
C#
// Load a spreadsheet in an instance of Workbook
var book = new Workbook(dir + "sample.xlsx");
// Save each Worksheet to separate HTML file
for (int i = 0; i < book.Worksheets.Count; i++)
{
book.Worksheets.ActiveSheetIndex = i;
// Create an instance of HtmlSaveOptions & set FilePathProvider property
var options = new HtmlSaveOptions
{
ExportActiveWorksheetOnly = true,
FilePathProvider = new FilePathProvider()
};
// Write HTML file to disc
book.Save(dir + string.Format(@"sheet{0}.html", i), options);
}
Вот как реализовать интерфейс IFilePathProvider.
C#
public class FilePathProvider : IFilePathProvider
{
public FilePathProvider()
{
}
/// <summary>
/// Gets the full path of the file by Worksheet name when exporting Worksheet to html separately.
/// So the references among the Worksheets can be exported correctly.
/// </summary>
/// <param name="sheetName">Worksheet name</param>
/// <returns>the full path of the file</returns>
public string GetFullName(string sheetName)
{
if ("Sheet2".Equals(sheetName))
{
return "sheet1.html";
}
else if ("Sheet3".Equals(sheetName))
{
return "sheet2.html";
}
return "";
}
}
Добавлено свойство CopyOptions.ReferToDestinationSheet и перегрузка для метода Cells.CopyRows.
Aspose.Cells for .NET API предоставил свойство типа Boolean CopyOptions.ReferToDestinationSheet вместе с перегрузкой метода Cells.CopyRows, чтобы облегчить операцию копирования строк, когда строки для копирования также содержат диаграмму и ее источник данных. Разработчики могут использовать эти новые API для указания источника данных диаграммы для исходного или целевого листа.
Вот простой сценарий использования.
C#
// Load a sample spreadsheet in an instance of Workbook
var book = new Workbook(dir + "sample.xlsx");
// Access the worksheet containing the chart & its data source
var source = book.Worksheets[0];
// Add a new worksheet to the collection
var destination = book.Worksheets[book.Worksheets.Add()];
// Initialize CopyOptions and set its ReferToDestinationSheet property to true
CopyOptions options = new CopyOptions();
options.ReferToDestinationSheet = true;
// Copy the rows
destination.Cells.CopyRows(source.Cells, 0, 0, source.Cells.MaxDisplayRange.RowCount, options);
// Save the result on disc
book.Save(dir + "output.xlsx");
Добавлено свойство CalculationOptions.Recursive
Aspose.Cells for .NET 8.9.1 предоставил свойство типа Boolean CalculationOptions.Recursive. Установка свойства CalculationOptions.Recursive в true и передача объекта в метод Workbook.CalculateFormula направляет API Aspose.Cells на рекурсивный расчет зависимых ячеек при вычислении ячеек, которые зависят от других ячеек.
Вот простой сценарий использования.
C#
// Load a sample spreadsheet in an instance of Workbook
var book = new Workbook(dir + "sample.xlsx");
// Initialize CalculationOptions & set Recursive property to true
var options = new CalculationOptions();
options.Recursive = true;
// Recalculate formulas
book.CalculateFormula(options);
Устаревшие API
Свойство CellsHelper.FontDir устарело
Рекомендуется использовать метод FontConfigs.SetFontFolder(string, bool) с рекурсивным параметром, установленным на false, вместо.
Свойство CellsHelper.FontDirs устарело
Используйте метод FontConfigs.SetFontFolders(string[], bool) с рекурсивным параметром, установленным на false, вместо.
Свойство CellsHelper.FontFiles устарело
Используйте метод FontConfigs.SetFontSources(FontSourceBase[]) вместо.