Offentliga API ändringar i Aspose.Cells 8.9.1

Tillagda API:er

Konfigurerbara typsnittskällor

Aspose.Cells for .NET har exponerat ett antal klasser för att ge stöd för konfigurerbara fontkällor för att rendera kalkylblad. Här är listan över klasser som har lagts till med Aspose.Cells for .NET 8.9.1.

  1. FontConfigs-klassen specificerar typsnittsinställningarna.
  2. FontSourceBase-klassen är en abstrakt basklass för klasser som tillåter användaren att specificera olika typsnittskällor.
  3. FileFontSource-klassen representerar den enskilda TrueType-typsnittsfilen som lagras i filsystemet.
  4. FolderFontSource-klassen representerar mappen som innehåller TrueType-typsnittsfilerna.
  5. MemoryFontSource-klassen representerar den enskilda TrueType-typsnittsfilen som är lagrad i minnet.
  6. FontSourceType-uppräkningen specificerar typen av typsnittskälla.

Med ovan nämnda ändringar på plats, tillåter Aspose.Cells for .NET att ställa in fonterna enligt nedan beskrivet.

  1. Ange en anpassad fontmapp medan du använder FontConfigs.SetFontFolder-metoden.
  2. Ange flera anpassade fontmappar medan du använder FontConfigs.SetFontFolders-metoden.
  3. Ange fontkällor från en anpassad fontmapp, en enskild fontfil eller fontdata från en matris av byte medan du använder FontConfigs.SetFontSources-metoden.

Här finns ett enkelt användningsscenario för ovanstående metoder.

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 tillåter även att konfigurera fontsubstitution. Denna mekanism är användbar när en nödvändig font inte är tillgänglig på den maskin där konvertering ska ske. Användare kan ange en lista med fontnamn som alternativ till den ursprungligen nödvändiga fonten. För att uppnå detta har Aspose.Cells API exponerat FontConfigs.SetFontSubstitutes-metoden som accepterar 2 parametrar. Den första parametern är av typen sträng, som ska vara namnet på den font som behöver ersättas. Den andra parametern är en matris av typen sträng. Användare kan ange en lista med fontnamn som substitut till det ursprungliga fontnamnet (anger i den första parametern).

Här är ett enkelt användningsscenario av metoden 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 har också tillhandahållit medel för att samla information om vilka källor och substitutioner som har ställts in.

  1. Metoden FontConfigs.GetFontSources returnerar en array av typen FontSourceBase som innehåller listan över specifierade typsnittskällor. Om inga källor har angetts kommer metoden FontConfigs.GetFontSources att returnera en tom array.
  2. Metoden FontConfigs.GetFontSubstitutes accepterar en parameter av typen string som låter dig ange typsnittets namn för vilket en ersättning har angetts. Om ingen ersättning har angetts för det angivna typsnittsnamnet kommer metoden FontConfigs.GetFontSubstitutes att returnera null.

Lägg till IFilePathProvider-gränssnittet och HtmlSaveOptions.FilePathProvider-egenskapen

Aspose.Cells for .NET 8.9.1 gör att du kan hämta/ställa in IFilePathProvider för att exportera kalkylblad till separata HTML-filer. Dessa nya API:er är användbara i scenarier där hyperlänkar i ett kalkylblad pekar på en plats i ett annat kalkylblad, där programkravet är att rendera varje kalkylblad till en separat HTML-fil. Genom att implementera IFilePathProvider kan du behålla de tidigare nämnda hyperlänkarna intakta oavsett om de pekar på en plats i en separat resulterande HTML-fil.

Följande är det enkla användningsscenario av HtmlSaveOptions.FilePathProvider-egenskapen.

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);

}

Så här implementerar du gränssnittet 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 "";

    }

}

Lade till CopyOptions.ReferToDestinationSheet Egenskap & Overload för Cells.CopyRows Metod

Aspose.Cells for .NET API har exponerat den booleska typen CopyOptions.ReferToDestinationSheet egenskap tillsammans med en överbelastning av Cells.CopyRows metoden för att underlätta kopiering av rader när raderna som ska kopieras också innehåller en tabell och dess datakälla. Utvecklare kan använda dessa nya API:er för att peka grafens datakälla till käll- eller destinationskalkylbladen.

Följande är det enkla användningscenariot.

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");

Tillagd CalculationOptions.Recursive Egendom

Aspose.Cells for .NET 8.9.1 har exponerat den booleska typen CalculationOptions.Recursive egenskap. Att ställa in CalculationOptions.Recursive-egenskapen till true och skicka objektet till Workbook.CalculateFormula-metoden riktar Aspose.Cells API:er att beräkna de beroende cellerna rekursivt när de beräknar celler som är beroende av andra celler.

Följande är det enkla användningscenariot.

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);

Obsoletterade API:er

Föråldrad CellsHelper.FontDir Egendom

Det rekommenderas att använda metoden FontConfigs.SetFontFolder(string, bool) med rekursiv inställd på false istället.

Föråldrad CellsHelper.FontDirs Egendom

Använd FontConfigs.SetFontFolders(string[], bool) metoden med rekursiv inställd på false istället.

Föråldrad CellsHelper.FontFiles Egendom

Använd FontConfigs.SetFontSources(FontSourceBase[]) metoden istället.