c# ईपीप्लस का उपयोग करके अभिव्यक्ति द्वारा सशर्त स्वरूपण




excel excel-2007 (2)

ईपीप्लस के 3.1 बीटा संस्करण में सशर्त स्वरूपण के लिए समर्थन है।

स्रोत-कोड यहां देखें: http://epplus.codeplex.com/discussions/348196/

मैं EPplus की सशर्त स्वरूपण सुविधा का उपयोग करके कुछ श्रेणी को प्रारूपित करने की कोशिश कर रहा हूं। मैंने कई दस्तावेज पढ़ा है लेकिन वहां कहीं नहीं है सशर्त स्वरूपण अभिव्यक्ति के बारे में।

मैं बहुत भ्रमित हूँ पता नहीं कि उस सुविधा का उपयोग कैसे करें। यहां मेरे कुछ प्रश्न हैं:

  1. क्या हम ExcelAddress पैरामीटर में डाल करने के लिए एकाधिक श्रेणी का उपयोग कर सकते हैं (जैसे "एच 1: एच 17, एल 1: एल 17," एए 1: एए 17 ")
  2. फॉर्मूला फॉर्मूला प्रॉपर्टी में रखा गया है जैसे किसी तरह इंटरॉप एक्सेल या नहीं? (जैसे कि हम इंटरॉप एक्सेल में स्वरूपण के लिए वर्तमान सेल के लिए प्रतिनिधित्व करने के लिए "ए 1" का उपयोग करते हैं)
  3. क्या आप मुझे एक छोटा डेमो कोड ले सकते हैं जो कंडीशनल फॉर्मेटिंग एक्सप्रेशन का उपयोग करते हैं।

धन्यवाद!

(बुरे अंग्रेजी के लिए खेद है मैंने लिखा था)


मैंने खुद को हल निकाला है कृपया एक उदाहरण कोड लें:

ExcelAddress _formatRangeAddress = new ExcelAddress("B3:B10,D3:D10,F3:F10,H3:H10:J3:J10");
// fill WHITE color if previous cell or current cell is BLANK:
// B3 is the current cell because the range _formatRangeAddress starts from B3.
// OFFSET(B3,0,-1) returns the previous cell's value. It's excel function.
string _statement = "IF(OR(ISBLANK(OFFSET(B3,0,-1)),ISBLANK(B3)),1,0)";
var _cond4 = sheet.ConditionalFormatting.AddExpression(_formatRangeAddress);
_cond4.Style.Fill.PatternType = OfficeOpenXml.Style.ExcelFillStyle.Solid;
_cond4.Style.Fill.BackgroundColor.Color = Color.White;
_cond4.Formula = _statement;

// fill GREEN color if value of the current cell is greater than 
//    or equals to value of the previous cell
_statement = "IF(OFFSET(B3,0,-1)-B3<=0,1,0)";
var _cond1 = sheet.ConditionalFormatting.AddExpression(_formatRangeAddress);
_cond1.Style.Fill.PatternType = OfficeOpenXml.Style.ExcelFillStyle.Solid;
_cond1.Style.Fill.BackgroundColor.Color = Color.Green;
_cond1.Formula = _statement;

// fill RED color if value of the current cell is less than 
//    value of the previous cell
_statement = "IF(OFFSET(B3,0,-1)-B3>0,1,0)";
var _cond3 = sheet.ConditionalFormatting.AddExpression(_formatRangeAddress);
_cond3.Style.Fill.PatternType = OfficeOpenXml.Style.ExcelFillStyle.Solid;
_cond3.Style.Fill.BackgroundColor.Color = Color.Red;
_cond3.Formula = _statement;

उपरोक्त उदाहरण में,

  • _formatRangeAddress एक सीमा है जो अभिव्यक्ति द्वारा सशर्त स्वरूपण के लिए लागू किया जाएगा। इस श्रेणी का पहला सेल हालत सूत्र में उपयोग किया जाएगा। (बी 3)।
  • _statement हालत की गणना करने के लिए उपयोग किए जाने वाला सूत्र है, यह स्ट्रिंग बराबर चिह्न ( = ) (एमएस एक्सेल से अंतर बिंदु) के साथ शुरू नहीं होता है, जिस कक्ष को अभिव्यक्ति बनाने के लिए उपयोग किया जाता है वह _formatRangeAddress में पहला सेल है (बी 3)।

आशा है कि यह दूसरों की मदद की ज़रूरत है -Han-





epplus