Pythonã§Excelã䏿ã«èªã
Pythonã§Excelãèªãã«ã¯ãhttp://pypi.python.org/pypi/pyExceleratorãhttp://pypi.python.org/pypi/xlwtã使ããã§ããããã®pyExceleratorã®ãã¼ã¹çµæããExcelåãã®ã¡ã½ããã®ãããªãã¸ã§ã¯ããããªãã¦ããªã¹ãã¨ã¿ãã«ã¨è¾æ¸ã ãã§ã§ãã¦ããããã¦ãããããªãã ãã©ãéã«OOPãªPGã«ã¯æ±ãã«ããã£ãããã¾ãã
[ ('Sheet1', {(0,0):1, (1,0):2, (2,0):3, (1,0):4, ... }), ('Sheet2', { ... }), ... ]
ãããªæãã
æç¶ã主ä½ã®äººãä½ãèããã«æ¸ãã¨ããããªããã°ã©ã ã«ãªãããããªãããªã¨æããµã³ãã«ã
import pyExcelerator # ã·ã¼ãåããã¼ã«ããè¾æ¸ã«ãã¼ã¿ãå ¥ãã book ãä½ã sheets = pyExcelerator.parse_xls("test.xls") book = dict() for name,sheet in sheets: book[name] = sheet # Sheet1ãåãåºã㦠sheet1 ã«æ ¼ç´ã該å½ãªããã°ç©º if 'Sheet1' in book.keys(): sheet1 = book['Sheet1'] else: sheet1 = {(0,0):0} # åã¨è¡ã®æå¤§ãå¾ã maxcols = 0 maxrows = 0 for col,row in sheet1.keys(): if col > maxcols: maxcols = col if row > maxrows: maxrows = row # è¡ãåã§ã«ã¼ã for i in range(maxrows + 1): for j in range(maxcols + 1): if sheet1.has_key((i, j)): print "[%d,%d] = %s" % (i, j, sheet1[(i,j)]) else: print "[%d,%d] = %s" % (i, j, None)
ããé¢åãã§ããä¸æã«æ¸ãã¨ããããªæãã
import pyExcelerator book = dict(pyExcelerator.parse_xls("test.xls")) # æ¬ sheet1 = book.get('Sheet1', {(0,0):0}) # ã·ã¼ã maxcols,maxrows = map(max, zip(*sheet1.keys())) # æå¤§å/è¡ # ã«ã¼ã for i in range(maxrows + 1): for j in range(maxcols + 1): print "[%d,%d] = %s" % (i, j, sheet1.get((i,j), None))
dict颿°ã¯ãå®ã¯ã[(key, value), (key, value), ...]ã®ãããªã·ã¼ã±ã³ã¹ããè¾æ¸ãä½ãããã§ããã
ã§ãè¾æ¸ãªãã¸ã§ã¯ãã¯ããã¦getã¡ã½ããã使ããã¨ã§ããã¼ããªãã¨ããã¨ã©ã¼ã«ãªããããããããã¼ããªãã£ãã¨ãã®ããã©ã«ãå¤ãæå®ã§ããã
ãã¨ãzip颿°ããã¾ã使ãã¨ã
zip((1,2,3), (4,5,6)) # ãã¼ãªã¹ããããªã¥ã¼ãªã¹ã # => ((1,4), (2,5), (3,6)) ãã¼ããªã¥ã¼ã㢠zip((1,2), (3,4), (5,6)) # ãã¼ããªã¥ã¼ã㢠# => ((1,3,5),(2,4,6)) ãã¼ãªã¹ããããªã¥ã¼ãªã¹ã
ãããªæãã§è»¢ç½®ã§ããã®ã§ã(å,è¡)ã¨ããå½¢å¼ã®ãã¼ãªã¹ãããã¯ã³ã©ã¤ãã¼ã§æå¤§åã¨æå¤§è¡ãå¾ããã¾ãã
ããã§ãExcelãç´ã§èªãããã°ã©ã ããã£ãã¨æ¸ãå§ãããã¾ãã