के साथ Excel में सेल-पृष्ठभूमि रंग प्राप्त करना मैं एक्सेल-स्प्रेडशीट में सेल के पृष्ठभूमि रंग प्राप्त करने का प्रयास कर रहा हूं। मैं ओपन एक्सएमएल 2.0 एसडीके का उपयोग कर रहा हूं और मैं * .xlsx-file खोलने और उदाहरण के लिए सेल-वैल्यू प्राप्त करने में सक्षम हूं।ओपन एक्सएमएल 2.0
public BackgroundColor GetCellBackColor(Cell theCell, SpreadsheetDocument document)
{
BackgroundColor backGroundColor = null;
WorkbookStylesPart styles = SpreadsheetReader.GetWorkbookStyles(document);
int cellStyleIndex = (int)theCell.StyleIndex.Value;
CellFormat cellFormat = (CellFormat)styles.Stylesheet.CellFormats.ChildElements[cellStyleIndex];
Fill fill = (Fill)styles.Stylesheet.Fills.ChildElements[(int)cellFormat.FillId.Value];
backGroundColor = fill.PatternFill.BackgroundColor;
return backGroundColor;
}
मेरे यहां समस्या यह है PatternFill.BackgroundColor
रिटर्न सिर्फ एक प्राकृतिक संख्या, मुझे लगता है कि यह शैली की आईडी है: पृष्ठभूमि रंग प्राप्त करने के लिए मेरे कोड निम्नलिखित है। मेरी समस्या यह है कि कोड
DocumentFormat.OpenXml.Spreadsheet.Color c = (DocumentFormat.OpenXml.Spreadsheet.Color)styles.Stylesheet.Colors.ChildElements[Int32.Parse(backGroundColor.InnerText)];
एक त्रुटि के साथ रिटर्न की लाइन है, क्योंकि Stylesheet.Colors
null
है ... ... शायद यह है क्योंकि मैं एक एक्सेल में रंग "में बनाया" का इस्तेमाल किया है - नहीं एक आत्म परिभाषित रंग?!
कोई विचार है कि मैं "बैकग्राउंडकोलर-वैल्यू" से वास्तविक रंग-संख्या कैसे "गणना" कर सकता हूं?
वर्ग SpreadsheetReader OpenXML 2.5 – Elmue