c# - सूत्र को रोकने के लिए बंद XML प्रारूप सेल



asp.net webforms (1)

बस ऐसे में कोई भी इस पर छेड़छाड़ करता है जो एक ही स्थिति में है, मैं था, बंद XML में फ़ार्मुलों बहुत सरल हैं।

आपके मूल्यों को जोड़े जाने के बाद, मैं समझता हूं कि सूत्रों को सीधे सेल पर लागू किया जाना चाहिए।

मैं वर्तमान सेल को प्राप्त करने के लिए एक सरल लूप का उपयोग करता था क्योंकि शीट पर संसाधित किया गया था क्योंकि मुझे सूत्र रखने के लिए एक पूरे कॉलम की आवश्यकता थी

//get all rows in my datatable 
int totalRows = dt.Rows.Count;

//set the first that will be filled with data
int currentRow = 1;

//loop through each row.
for(int i = 0; i < totalRows; i++){

//the current cell will be whatever column you wish to format + the current row
string currentCell = "F" + currentRow;

//create your formula
string AdjustedPriceFormula = "=C" + currentRow + "*" + "D" + currentRow;

//apply your formula to the cell.
theSheet.Cells(currentCell).FormulaA1 = AdjustedPriceFormula;

//increment your counters to apply the same data to the following row
currentRow++

यह मेरे लिए कई बार काम किया है और कई सूत्रों को कई कॉलम / कक्षों में जोड़ता है।

आशा है कि यह किसी को मदद करता है!

मैं उम्मीद कर रहा हूं कि कोई मुझे ClosedXML के साथ मदद कर सकता है क्योंकि मैं एक्सेल निर्यात करने के लिए नया हूँ और जो मैंने क्लोज्डएक्सएमएल के बारे में देखा है, दस्तावेज़ीकरण निश्चित क्षेत्रों में काफी सीमित है।

फिलहाल मैं आंकड़ों को डेटा स्वरूप में डाल रहा हूं, पंक्तियों को उनके सही प्रकार पर और सही लेआउट के साथ निर्यात कर रहा हूं।

समस्या तब होती है जब मैं प्रत्येक पंक्ति में दोहराए जाने वाले सूत्र को एक पंक्ति में निर्यात करने का प्रयास करता हूं

मैंने सूत्र को केवल ऐसी स्ट्रिंग के रूप में जोड़ने का प्रयास किया है जिसे मैं तब हाइलाइट और कनवर्ट कर सकता हूं जब फ़ाइल निर्यात की जाती है, यह स्पष्ट रूप से आदर्श नहीं है। मुझे XLFormula नामक एक्सएमएल में एक वर्ग मिला जो बिल्कुल कोई प्रलेखन नहीं है लेकिन मानता है कि मुझे इसके साथ कुछ करना चाहिए।

फिलहाल मैंने (टिप्पणी की है कि जिस तरह से मैं XLFormula का उपयोग कर रहा XLFormula , वह XLFormula फॉर्मूला को स्ट्रिंग के रूप में पास करने की कोशिश कर रहा था और प्रति इकाई कुल बोली के रूप में सेट किया गया था):

dt.Columns.Add("Qty", typeof(int));
dt.Columns.Add("Bid Per Unit GBP", typeof(double));
dt.Columns.Add("Total Bid GBP"); //typeof(XLFormula)
foreach (DataRow dr in dt.Rows)
{
    //XLFormula totalBidFormula = new XLFormula();

    dr["Qty"] = 1;
    dr["Bid Per Unit GBP"] = 0.00;
    dr["Total Bid GBP"] = "=[@Qty]*[@[Bid Per Unit GBP]]";

किसी भी तरह की सहायता का स्वागत किया जाएगा। अगर मैं क्या करने की कोशिश कर रहा हूं तो क्लोज्डएक्सएमएल के साथ असंभव है, कृपया मुझे बताएं और अगर आप वैकल्पिक एक्सएमएल निर्यातक (भले ही इसका भुगतान किया हो) का सुझाव दे, तो इससे मदद मिलेगी!





closedxml