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