मैं अजगर का उपयोग कर स्प्रेडशीट xml से फ़ॉर्मूला संदर्भ मानचित्र बनाने पर काम कर रहा हूं। सूत्रपार्सिंग एक्सेल स्टाइल फॉर्मूला
=IF(AND(LEN(R[-2]C[-1])>0,R[-1]C),WriteCurve(OFFSET(R16C6, 0,0,R9C7,R10C7),R15C6,R10C3, R8C3),"NONE")
मुझे केवल लिखने के कार्य की nth तर्क प्राप्त करने में रूचि है। यहां मैं बहुत सी शैली कार्यक्रम शुरू करता हूं जो मूल रूप से कोमा की गणना करता है जो ब्रैकेट के अंदर नहीं है। बहुत सारे नेस्टेड फॉर्मूला
def parseArguments(t, func, n):
start=t.find(func)+len(func)+1
bracket = 0
ss = t[start:]
lastcomma = 0
for i, a in enumerate(ss):
if a=="(":
bracket +=1
elif a==")":
if bracket==0:
break
bracket-=1
elif a == ",":
if bracket==0 and n==0:
break
elif bracket ==0:
if n-1==0:
lastcomma = i
n-=1
if lastcomma == 0:
return ss[:i]
else:
return ss[lastcomma+1:i]
क्या ऐसा करने का पाइथोनिक तरीका है? या पूरे सूत्र को पार्स करने के लिए एक बेहतर रिकर्सिव तरीका है? बहुत धन्यवाद