Sådan arbejder du med tabeller i .NET
Aspose.Slides FOSS for .NET understøtter oprettelse af tabeller på dias med konfigurerbare kolonnebredder og rækkehøjder. Denne vejledning viser, hvordan du tilføjer en tabel, udfylder den med data og anvender grundlæggende tekstformatering på celler.
Trin-for-trin Guide
Trin 1: Installer pakken
dotnet add package Aspose.Slides.FossTrin 2: Opret eller åbn en præsentation
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
var slide = prs.Slides[0];
// ... add table ...
prs.Save("table.pptx", SaveFormat.Pptx);Trin 3: Definer kolonnebredder og rækkehøjder
Tabeller kræver eksplicitte kolonnebredder og rækkehøjder i point (1 point = 1/72 tomme). Et standard slide er 720 point bredt og 540 point højt.
var colWidths = new double[] { 200.0, 150.0, 150.0 }; // 3 columns
var rowHeights = new double[] { 45.0, 40.0, 40.0 }; // 3 rowsTrin 4: Tilføj tabellen
slide.Shapes.AddTable(x, y, columnWidths, rowHeights) opretter tabellen på position (x, y):
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
var slide = prs.Slides[0];
var colWidths = new double[] { 200.0, 150.0, 150.0 };
var rowHeights = new double[] { 45.0, 40.0, 40.0 };
var table = slide.Shapes.AddTable(50, 100, colWidths, rowHeights);
prs.Save("table.pptx", SaveFormat.Pptx);Trin 5: Indstil celletekst
Få adgang til celler via table.Rows[rowIndex][colIndex] og tildel tekst gennem .TextFrame.Text:
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
var slide = prs.Slides[0];
var colWidths = new double[] { 200.0, 150.0, 150.0 };
var rowHeights = new double[] { 45.0, 40.0, 40.0 };
var table = slide.Shapes.AddTable(50, 100, colWidths, rowHeights);
// Header row (row 0)
string[] headers = { "Product", "Units Sold", "Revenue" };
for (int col = 0; col < headers.Length; col++)
table.Rows[0][col].TextFrame.Text = headers[col];
// Data rows
string[][] data = {
new[] { "Widget A", "1,200", "$24,000" },
new[] { "Widget B", "850", "$17,000" },
};
for (int rowIdx = 0; rowIdx < data.Length; rowIdx++)
for (int col = 0; col < data[rowIdx].Length; col++)
table.Rows[rowIdx + 1][col].TextFrame.Text = data[rowIdx][col];
prs.Save("sales-table.pptx", SaveFormat.Pptx);Trin 6: Formater overskriftscelletekst
Anvend fed formatering på overskriftsceller ved hjælp af PortionFormat:
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Drawing;
for (int col = 0; col < headers.Length; col++)
{
var cell = table.Rows[0][col];
var portions = cell.TextFrame.Paragraphs[0].Portions;
if (portions.Count > 0)
{
var fmt = portions[0].PortionFormat;
fmt.FontBold = NullableBool.True;
fmt.FillFormat.FillType = FillType.Solid;
fmt.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 255, 255, 255);
}
}Komplet Arbejdseksempel
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Drawing;
using Aspose.Slides.Foss.Export;
string[][] dataRows = {
new[] { "North", "$1.2M", "+8%" },
new[] { "South", "$0.9M", "+4%" },
new[] { "East", "$1.5M", "+12%" },
new[] { "West", "$0.7M", "+2%" },
};
string[] headers = { "Region", "Revenue", "Growth" };
using var prs = new Presentation();
var slide = prs.Slides[0];
var colWidths = new double[] { 180.0, 140.0, 120.0 };
var rowHeights = new double[dataRows.Length + 1];
rowHeights[0] = 45.0;
for (int i = 1; i < rowHeights.Length; i++) rowHeights[i] = 38.0;
var table = slide.Shapes.AddTable(60, 80, colWidths, rowHeights);
// Header row
for (int col = 0; col < headers.Length; col++)
{
var cell = table.Rows[0][col];
cell.TextFrame.Text = headers[col];
if (cell.TextFrame.Paragraphs[0].Portions.Count > 0)
{
var fmt = cell.TextFrame.Paragraphs[0].Portions[0].PortionFormat;
fmt.FontBold = NullableBool.True;
}
}
// Data rows
for (int rowIdx = 0; rowIdx < dataRows.Length; rowIdx++)
for (int col = 0; col < dataRows[rowIdx].Length; col++)
table.Rows[rowIdx + 1][col].TextFrame.Text = dataRows[rowIdx][col];
prs.Save("regional-revenue.pptx", SaveFormat.Pptx);
Console.WriteLine("Saved regional-revenue.pptx");Almindelige problemer og rettelser
IndexOutOfRangeException ved adgang til table.Rows[row][col]
Række- og kolonneindekser er nulbaserede. Hvis du definerede rowHeights med 3 elementer, er gyldige rækkeindekser 0, 1, 2.
Celletekst vises ikke i den gemte fil
Tildel altid via .TextFrame.Text, ikke via .Text direkte på celleobjektet:
// Correct
table.Rows[0][0].TextFrame.Text = "Header";
// Wrong: will not compile or silent failure
// table.Rows[0][0].Text = "Header";Tabelposition er uden for sliden
Kontroller, at x + sum(colWidths) <= 720 og y + sum(rowHeights) <= 540 for en standard slide.
Ofte stillede spørgsmål
Kan jeg flette tabelceller?
Cellefletning understøttes ikke i denne udgave.
Kan jeg anvende en baggrundsfarve på hele tabellen?
Anvend udfyldningsformatering på hver enkelt celle:
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Drawing;
for (int row = 0; row < table.Rows.Count; row++)
for (int col = 0; col < table.Rows[row].Count; col++)
{
var cell = table.Rows[row][col];
cell.CellFormat.FillFormat.FillType = FillType.Solid;
cell.CellFormat.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 240, 248, 255);
}Kan jeg indstille cellekantstile?
Cellekant‑egenskaber er tilgængelige via cell.CellFormat.BorderLeft, BorderTop, BorderRight og BorderBottom‑egenskaber. Se API‑referencen for den fulde liste over kantformatattributter.