संपादित करें: मुझे लगता है कि मैं मानता चाहिए, के रूप में कुछ अन्य लोगों-जो मुझे कभी नहीं छोड़ा द्वारा बताया टिप्पणी-कि मेरे उत्तर के पिछले संस्करण (जिसे आपने स्वीकार किया) में एक बग था जिसने इसे 702
से अधिक कॉलम संख्याओं को ठीक से संभालने से रोक दिया (एक्सेल कॉलम 'ZZ'
से संबंधित)। तो, शुद्धता के हित में, यह नीचे दिए गए कोड में तय किया गया है, जिसमें अब कई अन्य उत्तरों की तरह एक लूप शामिल है।
यह संभावना है कि आपने इस मुद्दे का सामना करने के लिए पर्याप्त पर्याप्त कॉलम संख्याओं के साथ पिछले संस्करण का कभी भी उपयोग नहीं किया है। एफडब्ल्यूआईडब्ल्यू, MS specs for the current version of Excel का कहना है कि यह 16,384 कॉलम (एक्सेल कॉलम 'XFD'
) के साथ वर्कशीट का समर्थन करता है।
LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
def excel_style(row, col):
""" Convert given row and column number to an Excel-style cell name. """
result = []
while col:
col, rem = divmod(col-1, 26)
result[:0] = LETTERS[rem]
return ''.join(result) + str(row)
if __name__ == '__main__':
addresses = [(1, 1), (1, 26),
(1, 27), (1, 52),
(1, 53), (1, 78),
(1, 79), (1, 104),
(1, 18253), (1, 18278),
(1, 702), # -> 'ZZ1'
(1, 703), # -> 'AAA1'
(1, 16384), # -> 'XFD1'
(1, 35277039)]
print('({:3}, {:>10}) --> {}'.format('row', 'col', 'Excel'))
print('==========================')
for row, col in addresses:
print('({:3}, {:10,}) --> {!r}'.format(row, col, excel_style(row, col)))
आउटपुट:
(row, col) --> Excel
========================
( 1, 1) --> 'A1'
( 1, 26) --> 'Z1'
( 1, 27) --> 'AA1'
( 1, 52) --> 'AZ1'
( 1, 53) --> 'BA1'
( 1, 78) --> 'BZ1'
( 1, 79) --> 'CA1'
( 1, 104) --> 'CZ1'
( 1, 18253) --> 'ZZA1'
( 1, 18278) --> 'ZZZ1'
( 1, 702) --> 'ZZ1'
( 1, 703) --> 'AAA1'
( 1, 16384) --> 'XFD1'
( 1, 35277039) --> 'BYEBYE1'
@MartijnPieters मुझे पता है कि। मैंने वैरिएबल वैल्यू को इंट वैल्यू से बदल दिया है, लेकिन इसका मतलब यह नहीं है कि सवाल को कम करें। –
मैंने आपके प्रश्न पर मतदान नहीं किया था। कृपया सोचने की गलती न करें कि टिप्पणी और मतदान एक ही बात है। –
आपका प्रश्न * थोड़ा अस्पष्ट है, लेकिन शायद यह स्वरूपण और व्याकरण के लिए शायद अधिक नीचे है। आपने कोड, अपेक्षित परिणाम और परिणाम देखा है, लेकिन यह मुझे स्पष्ट नहीं है कि आप क्या हासिल करने की कोशिश कर रहे हैं। –