zoukankan      html  css  js  c++  java
  • python 写excel

    # !/usr/bin/env python
    # -*- coding: utf-8 -*-
    import MySQLdb
    from datetime import datetime
    import cx_Oracle
    import os
    import sys
    import xlwt
    
    reload(sys)
    import time
    sys.setdefaultencoding('utf-8')
    os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
    def write_data_to_excel(name, result):
        # 将sql作为参数传递调用get_data并将结果赋值给result,(result为一个嵌套元组)
        result = result
        # 实例化一个Workbook()对象(即excel文件)
        wbk = xlwt.Workbook(encoding='utf-8')
        # 新建一个名为Sheet1的excel sheet。此处的cell_overwrite_ok =True是为了能对同一个单元格重复操作。
        sheet = wbk.add_sheet('Sheet1', cell_overwrite_ok=True)
        # 获取当前日期,得到一个datetime对象如:(2016, 8, 9, 23, 12, 23, 424000)
        #today = datetime.today()
        # 将获取到的datetime对象仅取日期如:2016-8-9
        #today_date = datetime.date(today)
        # 遍历result中的没个元素。
        titlelist=['bankno', 'bankstatus', 'banktype', 'bankclscode', 'clearbank', 'legalperson', 'topbanklist', 'topbankno', 'topbankname', 'rplbankno', 'peoplebankno', 'ccpcnodeno', 'citycode', 'bankname', 'bankaliasname', 'signflag', 'address', 'postcode', 'telephone', 'email', 'remark', 'cnapsgeneration', 'saccstatus', 'saccaltdate', 'saccalttime', 'remark1', 'updatedate', 'updateno', 'effectdate', 'invaliddate', 'changetype']
        # for i in xrange(len(titlelist)):
        #     sheet.write(1, i, titlelist[i])
        # wbk.save(name + str(yesterday) + '.xls')
        for i in xrange(len(result)):
            # 对result的每个子元素作遍历,
            if i==0:
                for x in xrange(len(titlelist)):
                    sheet.write(0, x, titlelist[x])
            for j in xrange(len(result[i])):
                y=i+1
                # 将每一行的每个元素按行号i,列号j,写入到excel中。
                #if result[i][j] is None:
                sheet.write(y, j, result[i][j])
        # 以传递的name+当前日期作为excel名称保存。
        wbk.save(name)
    
    conn = cx_Oracle.connect('afa/afa@1.1.1.1/xx')
    cur = conn.cursor()
    mysql='select distinct a.clearbank 
      from T_CPIM_CNAPSBANKINFO a 
    where a.bankno in 
           (select distinct b.legalperson from T_CPIM_CNAPSBANKINFO b)'
    
    sqlb='select count(*) from (select distinct a.clearbank  
      from T_CPIM_CNAPSBANKINFO a 
    where a.bankno in 
           (select distinct b.legalperson from T_CPIM_CNAPSBANKINFO b))'
    
    cur.execute(mysql)
    arr01= cur.fetchall()
    print type(arr01)
    
    cur.execute(sqlb)
    count=cur.fetchone()
    print count[0]
    time.sleep(5)
    list=[]
    for x in arr01:
      clearbank=x[0]
      print clearbank
      sqlb="select * from T_CPIM_CNAPSBANKINFO a where a.clearbank=%s" % (clearbank)
      print sqlb
      cur.execute(sqlb)
      arr02= cur.fetchall()
      print len(arr02)
      if len(arr02) == 1:
         list.append(arr02[0])
      else:
         minnum=1000
         for x in arr02:
           print x[13]
           min1=len(x[13])
           if min1 <  minnum:
               minnum=min1
               arr03=x
         print arr03
         print arr03[13]
         #time.sleep(100)
         list.append(arr03)
    print list
    print len(list)
    write_data_to_excel('cnaps.csv',list)
  • 相关阅读:
    初识redis
    支付宝退款操作
    《地质灾害防治这一年2013》读书摘要
    地质灾害防治工作的经验和体会
    关于地质灾害防治的一些认识
    应急信息报送和值班工作的培训学习
    《地质灾害防治这一年2012》读书摘要
    关于开源GIS和商业GIS的讨论
    B树索引学习
    cordova 开发 ios app 简要流程
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13348754.html
Copyright © 2011-2022 走看看