.NET में तालिकाओं के साथ कैसे काम करें
Aspose.Slides FOSS for .NET स्लाइड्स पर कॉन्फ़िगर करने योग्य कॉलम चौड़ाई और पंक्ति ऊँचाई के साथ तालिकाएँ बनाने का समर्थन करता है। यह गाइड दिखाता है कि तालिका कैसे जोड़ें, उसे डेटा से भरें, और कोशिकाओं पर बुनियादी टेक्स्ट फ़ॉर्मेटिंग कैसे लागू करें।
स्टेप-बाय-स्टेप गाइड
चरण 1: पैकेज स्थापित करें
dotnet add package Aspose.Slides.Fossचरण 2: प्रस्तुति बनाएं या खोलें
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);चरण 3: कॉलम चौड़ाइयाँ और पंक्ति ऊँचाइयाँ निर्धारित करें
टेबल्स को कॉलम चौड़ाई और पंक्ति ऊँचाई पॉइंट्स में स्पष्ट रूप से निर्दिष्ट करनी होती है (1 पॉइंट = 1/72 इंच)। एक मानक स्लाइड की चौड़ाई 720 पॉइंट्स और ऊँचाई 540 पॉइंट्स होती है।
var colWidths = new double[] { 200.0, 150.0, 150.0 }; // 3 columns
var rowHeights = new double[] { 45.0, 40.0, 40.0 }; // 3 rowsचरण 4: तालिका जोड़ें
slide.Shapes.AddTable(x, y, columnWidths, rowHeights) तालिका को स्थिति (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);चरण 5: सेल टेक्स्ट सेट करें
table.Rows[rowIndex][colIndex] के माध्यम से सेल्स तक पहुँचें और .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);चरण 6: हेडर सेल टेक्स्ट फ़ॉर्मेट करें
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);
}
}पूर्ण कार्यशील उदाहरण
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");सामान्य समस्याएँ और समाधान
IndexOutOfRangeException जब एक्सेस कर रहे हैं table.Rows[row][col]
पंक्ति और स्तंभ सूचकांक शून्य-आधारित होते हैं। यदि आपने rowHeights को 3 तत्वों के साथ परिभाषित किया है, तो मान्य पंक्ति सूचकांक 0, 1, 2 हैं।
सेल टेक्स्ट सहेजी गई फ़ाइल में दिखाई नहीं देता
सेल ऑब्जेक्ट पर सीधे .Text के माध्यम से नहीं, बल्कि हमेशा .TextFrame.Text के माध्यम से असाइन करें:
// Correct
table.Rows[0][0].TextFrame.Text = "Header";
// Wrong: will not compile or silent failure
// table.Rows[0][0].Text = "Header";टेबल की स्थिति स्लाइड से बाहर है
एक मानक स्लाइड के लिए x + sum(colWidths) <= 720 और y + sum(rowHeights) <= 540 की जाँच करें।
अक्सर पूछे जाने वाले प्रश्न
क्या मैं तालिका कोशिकाओं को मिलाकर बना सकता हूँ?
हाँ। दो सटे हुए कोशिकाओं को मिलाने के लिए Table.MergeCells(ICell cell1, ICell cell2, bool allowSplitting) का उपयोग करें। मर्ज की गई कोशिका को फिर से विभाजित होने से रोकने के लिए allowSplitting को false पर सेट करें। उदाहरण:
// Merge cell (row 0, col 0) with cell (row 0, col 1)
var cell1 = table.Rows[0][0];
var cell2 = table.Rows[0][1];
table.MergeCells(cell1, cell2, false);क्या मैं पूरी तालिका पर पृष्ठभूमि रंग लागू कर सकता हूँ?
प्रत्येक व्यक्तिगत सेल पर फ़िल फ़ॉर्मेटिंग लागू करें:
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);
}क्या मैं सेल बॉर्डर शैलियों को सेट कर सकता हूँ?
सेल बॉर्डर गुण cell.CellFormat.BorderLeft, BorderTop, BorderRight, और BorderBottom गुणों के माध्यम से उपलब्ध हैं। बॉर्डर फ़ॉर्मेट एट्रिब्यूट्स की पूरी सूची के लिए API रेफ़रेंस देखें।