टेबल्स के साथ काम करना

टेबल्स के साथ काम करना

टेबल्स के साथ काम करना

टेबल्स में Aspose.Words FOSS के लिए .NET द्वारा प्रदर्शित किया जाता है Aspose.Words.Tables namespace: Table, Row, और Cell तीन-स्तरीय सम्मिलित नोड पदानुक्रम बनाते हैं जो दस्तावेज़ वृक्ष में पैराग्राफ़ के साथ स्थित होता है। यह पृष्ठ तालिकाएँ बनाते समय , पंक्तियों और कोशिकाओं को स्वरूपित करने, तालिका-व्यापी लेआउट को नियंत्रित करने, और कोशिकाओं को मिलाने के बारे में कवर करता है। DocumentBuilder,समस्या.


टेबल ऑब्जेक्ट मॉडल

एक Table एक CompositeNode है जिसमें Row नोड्स होते हैं, और प्रत्येक Row एक CompositeNode है जिसमें Cell नोड्स होते हैं; एक Cell बदले में पैराग्राफ़ और संभावित रूप से नेस्टेड टेबल्स रखता है। Table.Rows एक RowCollection लौटाता है, Row.Cells एक CellCollection लौटाता है, और एक Body या अन्य Story अपने Tables प्रॉपर्टी, एक TableCollection के माध्यम से उसमें मौजूद हर शीर्ष-स्तरीय टेबल को उजागर करता है। सभी तीन संग्रह Add(), Insert(), Remove(), RemoveAt(), Contains(), और IndexOf() को समर्थन देते हैं। Table.EnsureMinimum(), Row.EnsureMinimum(), और Cell.EnsureMinimum() क्रमशः उस प्रकार के नोड को आवश्यक सबसे छोटा वैध सामग्री (एक खाली पंक्ति, एक खाली कोशिका, या एक खाली पैराग्राफ) भरते हैं, जब प्रोग्रामेटिक संपादन के बाद वह अनुपलब्ध रह जाता है।


DocumentBuilder के साथ टेबल बनाना

DocumentBuilder.StartTable() कर्सर पर एक नई टेबल शुरू करता है, InsertCell() वर्तमान पंक्ति में एक कोशिका जोड़ता है, EndRow() वर्तमान पंक्ति को बंद करता है, और EndTable() टेबल को बंद करता है। InsertCell() या EndRow() को कॉल करने से पहले DocumentBuilder.CellFormat और DocumentBuilder.RowFormat सेट करें ताकि कोशिकाओं और पंक्तियों पर बनते समय डिफ़ॉल्ट स्वरूप लागू हो सके — ये प्रॉपर्टी अगले सम्मिलित सामग्री के लिए एक टेम्पलेट के रूप में कार्य करती हैं, न कि दस्तावेज़ में पहले से मौजूद कोशिकाओं में retroactive बदलाव।


कोशिका और पंक्ति स्वरूपण

Cell.CellFormat एक CellFormat उदाहरण है (Borders, Shading, Width, WrapText, FitText, HorizontalMerge, VerticalMerge, VerticalAlignment, PreferredWidth, LeftPadding, RightPadding, TopPadding, BottomPadding, HideMark, Orientation) जिसमें ClearFormatting() इसे रीसेट करने के लिए और SetPaddings() सभी चार सेल पैडिंग्स को एक साथ सेट करने के लिए है। Row.RowFormat एक RowFormat उदाहरण है (Borders, Height, HeightRule, AllowBreakAcrossPages, HeadingFormat) जिसके पास अपना ClearFormatting() है।


टेबल-व्यापी फ़ॉर्मैटिंग और AutoFit

Table स्वयं लेआउट गुणों को उजागर करता है – Alignment (TableAlignment), Bidi, LeftIndent, PreferredWidth, Style, StyleIdentifier, StyleName, StyleOptions (TableStyleOptions), TextWrapping, और पहुँच योग्य मेटाडेटा Title और Description के माध्यम से। Table.AutoFit(AutoFitBehavior) दिए गए व्यवहार के अनुसार तालिका और उसकी कोशिकाओं का आकार बदलता है। SetBorder() एक बॉर्डर साइड सेट करता है और SetBorders() पूरे टेबल में सभी बॉर्डर को समान लाइन शैली, चौड़ाई, और रंग में सेट करता है; ClearBorders() और ClearShading() उन्हें रीसेट करते हैं। ConvertToHorizontallyMergedCells() उन कोशिकाओं को बदलता है जो समान चौड़ाई से मर्ज की गई थीं, उन्हें स्पष्ट रूप से HorizontalMerge के साथ चिन्हित कोशिकाओं में बदल देता है।


पसंदीदा और सेल चौड़ाइयाँ

PreferredWidth एक चौड़ाई और उसकी इकाई का प्रतिनिधित्व करता है, जिसे स्थिर फ़ैक्टरी मेथड्स PreferredWidth.FromPercent() या PreferredWidth.FromPoints() से बनाया जाता है; PreferredWidthType पहचानता है कि किसी दिए गए PreferredWidth में कौन सा प्रकार का मान (Auto, Percent, या Points) है। Table.PreferredWidth और CellFormat.PreferredWidth दोनों इन मानों को स्वीकार करते हैं।


मर्ज्ड सेल्स

CellFormat.HorizontalMerge और CellFormat.VerticalMerge (CellMerge) दर्शाते हैं कि कोई सेल अपने पड़ोसियों के साथ क्षैतिज या लंबवत मर्ज में कैसे भाग लेता है। CellVerticalAlignment कंटेंट को सेल के भीतर लंबवत रूप से कैसे संरेखित किया जाए, इसे नियंत्रित करता है, चाहे कोई भी मर्ज स्थिति हो।


टिप्स और सर्वोत्तम प्रथाएँ

  • प्रत्येक StartTable() को प्रत्येक पंक्ति के लिए मिलते-जुलते EndRow() और एक अंतिम EndTable() से बंद करें – अनबंद पंक्ति या तालिका बिल्डर की आंतरिक स्थिति (और परिणामी दस्तावेज़ वृक्ष) को विकृत छोड़ देती है।
  • यदि एक ही तालिका में विभिन्न पंक्तियों या कोशिकाओं को अलग फॉर्मेटिंग चाहिए तो प्रत्येक InsertCell() या EndRow() कॉल से पहले DocumentBuilder.CellFormat और DocumentBuilder.RowFormat सेट करें; बिल्डर वह लागू करता है जो सम्मिलन के क्षण में वर्तमान में सेट है।
  • सामग्री को प्रोग्रामेटिकली हटाने के बाद Table.EnsureMinimum(), Row.EnsureMinimum() या Cell.EnsureMinimum() को कॉल करें ताकि नोड Word द्वारा अपेक्षित न्यूनतम वैध संरचना को बनाए रखे।
  • उन तालिकाओं के लिए PreferredWidth.FromPercent() का उपयोग करें जिन्हें उपलब्ध पृष्ठ चौड़ाई के अनुसार अनुकूल होना चाहिए, और निश्चित लेआउट चौड़ाई के लिए PreferredWidth.FromPoints() का उपयोग करें।
  • AutoFitBehavior तब लागू होता है जब आप Table.AutoFit() को कॉल करते हैं – यह आपके द्वारा सामग्री जोड़ने या हटाने के साथ निरंतर पुनः नहीं चलता, इसलिए यदि आपको तालिका को पुनः फिट करने की आवश्यकता है तो महत्वपूर्ण संपादनों के बाद इसे फिर से कॉल करें।

सामान्य समस्याएँ

Issueकारणसमाधान
टेबल विकृत दिखता है या सहेजते समय त्रुटि देता हैएक पंक्ति या टेबल को कभी EndRow() / EndTable() से बंद नहीं किया गया थाहमेशा StartTable() को अंतिम EndTable() के साथ जोड़ेँ, और प्रत्येक पंक्ति को EndRow() से बंद करें
नई कोशिकाएँ वह फ़ॉर्मेटिंग नहीं लेतीं जो मैंने सेट की हैCellFormat / RowFormat को निर्माणकर्ता में तब बदल दिया गया जब कोशिकाएँ पहले ही सम्मिलित हो चुकी थींउस सामग्री के लिए InsertCell() / EndRow() को कॉल करने से पहले DocumentBuilder.CellFormat / RowFormat सेट करें
टेबल वह आकार नहीं बदलता जैसा मैं उम्मीद करता हूँAutoFit() कॉल किए जाने के क्षण में टेबल की स्थिति को दर्शाता है, निरंतर नहींसंरचनात्मक संपादनों के बाद Table.AutoFit(AutoFitBehavior) को फिर से कॉल करें
सन्निहित सेल जो मिलती हुई दिखती हैं, अलग-अलग सेल की तरह व्यवहार करती हैंसेल केवल चौड़ाई के आधार पर मिलाए गए थे, CellMerge के साथ चिह्नित नहीं किए गएTable.ConvertToHorizontallyMergedCells() को कॉल करें, या CellFormat.HorizontalMerge / VerticalMerge को स्पष्ट रूप से सेट करें

FAQ

मैं DocumentBuilder के साथ शुरू से एक तालिका कैसे बनाऊँ?

कॉल StartTable(), फिर प्रत्येक पंक्ति में प्रत्येक सेल के लिए InsertCell(), पंक्ति को बंद करने के लिए EndRow(), अतिरिक्त पंक्तियों के लिए दोहराएँ, और अंत में तालिका को बंद करने के लिए EndTable()।

मैं निश्चित चौड़ाई के बजाय प्रतिशत-आधारित तालिका चौड़ाई कैसे सेट करूँ?

Table.PreferredWidth = PreferredWidth.FromPercent(value) को PreferredWidth.FromPoints(value) के बजाय असाइन करें।

मैं सेल या पंक्ति पर सभी फ़ॉर्मेटिंग कैसे रीसेट करूँ?

सेल के CellFormat पर CellFormat.ClearFormatting() कॉल करें, या पंक्ति के RowFormat पर RowFormat.ClearFormatting()।

मैं पूरी तालिका के लिए एक साथ बॉर्डर और शेडिंग कैसे सेट करूँ?

हर पक्ष पर समान बॉर्डर के लिए Table.SetBorders() का उपयोग करें, एक बार में एक पक्ष के लिए Table.SetBorder(), और समान शेडिंग के लिए Table.SetShading(); ClearBorders() और ClearShading() उन्हें रीसेट करते हैं।


API Reference सारांश

क्लास / एनमविवरण
Tableटेबल नोड; Rows, AutoFit(), SetBorders(), SetShading(), PreferredWidth
Rowटेबल पंक्ति नोड; Cells, RowFormat, EnsureMinimum()
Cellटेबल सेल नोड; CellFormat, EnsureMinimum()
TableCollection / RowCollection / CellCollectionटाइप्ड संग्रह Table / Row / Cell नोड्स
CellFormatप्रति-सेल फ़ॉर्मेटिंग: बॉर्डर, शेडिंग, पैडिंग, मर्ज स्टेट, वर्टिकल अलाइमेंट
RowFormatप्रति-रो फ़ॉर्मेटिंग: बॉर्डर, ऊँचाई, पेज-ब्रेक व्यवहार
PreferredWidth / PreferredWidthTypeटेबल या सेल की चौड़ाई का मान और उसकी इकाई (auto, percent, points)
AutoFitBehaviorकैसे Table.AutoFit() टेबल और उसकी कोशिकाओं के आकार को बदलता है
CellMerge / CellVerticalAlignmentक्षैतिज/ऊर्ध्वाधर सेल-मर्ज स्थिति और ऊर्ध्वाधर सामग्री संरेखण
TableAlignment / TableStyleOptions / TextWrappingटेबल-व्यापी संरेखण, शैली लागू करना, और टेक्स्ट-रैप व्यवहार
DocumentBuilder.StartTable / InsertCell / EndRow / EndTableकर्सर-आधारित तालिका निर्माण

यह भी देखें

 हिन्दी