• 2019/1/9 6系列所有装置编号与SIM卡信息抓取


    一、报错:
    File "G:/station/6系列装置信息明细.py", line 12, in <module>
    workbook.save(r'.6系列装置明细表.xls')
    File "G:pythonlibsite-packagesxlwtWorkbook.py", line 710, in save
    doc.save(filename_or_stream, self.get_biff_data())
    File "G:pythonlibsite-packagesxlwtWorkbook.py", line 680, in get_biff_data
    self.worksheets[self.active_sheet].selected = True
    IndexError: list index out of range
    此问题是由于未能正确使用价表工具导致;
    二、数据插入excel
    import xlwt 
    workbook = xlwt.Workbook('6系列装置明细.xls') #给表名命
    sheet1 = workbook.add_sheet('6系列') #给表的sheet1名命(如果只有一页内容应该用不上这个)
    k = 0
    for i in A:
    device = i[0]
    print(device)
    SIM = i[1]
    sheet1.write(k,0,device) #k为行 ,0为列 ,后面是要插入的内容
    sheet1.write(k,1,SIM)
    k = k + 1
    workbook.save('6系列装置明细.xls') 
    用此代码确实可以实现目的,但是查看数据量只有98行,经过查看,是由于for循环在上一个for循环之外,我用的是连接多个系统,导致没有将所有的数据导入表格。
    三、报错
    Exception: Attempt to overwrite cell: sheetname='6系列' rowx=0 colx=0
    这个问题是由于循环中没有处理号行号,导致每一次换系统拿出来的数据都以第一行开始写入;
    四、代码:

    -- coding:UTF-8 --
    
    import os
    import pymssql
    import xlwt
    workbook = xlwt.Workbook('已更换6系列装置明细')
    sheet1 = workbook.add_sheet('6系列')
    sql_name = [
    ['*','sa','*','TAS3.2_DB_JLNA'],['','sa','','TAS3.2_DB_NMBY'],
    ['','sa','','TAS3.2_DB_NMWHLWS'],['','sa','','TAS3.2_DB_NX'],
    ]
    print('**程序正在启动****')
    os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
    os.environ['NLS_LANG'] = 'AMERICAN_AMERICA.AL32UTF8'
    k = 0
    for SJK in sql_name:
      IP_DB = SJK[0] # 获取数据库IP
      us_DB = SJK[1]
      PW_DB= SJK[2]
      DB = SJK[3]
      DB_name = DB[10:]
      print(DB)
    conn = pymssql.connect(host=IP_DB, user=us_DB, password=PW_DB, database=DB)
    cur = conn.cursor()
    check_sql = "SELECT sFactoryNum,sGSMcardNum FROM XHQD620_Device WHERE lDevStatus = 8" #DB库中拿装置编号与SIM号
    cur.execute(check_sql)
    A = cur.fetchall()
    print(A)
    for i in A:
      device = i[0]
      print(device)
      SIM = i[1]
      sheet1.write(k,0,device)
      sheet1.write(k,1,SIM)
      k = k + 1
    workbook.save('已更换6系列装置明细.xls')
  • 相关阅读:
    Grep案例(本地模式)
    Java环境变量 和 Hadoop环境变量 配置
    sudo设置
    Linux配置
    mysql安装(前提:Linux最小化安装)
    test
    Floyd算法【最短路1】
    HttpClient调用接口发送文件
    Spring boot 论坛项目实战_07
    Spring boot 论坛项目实战_06
  • 原文地址:https://www.cnblogs.com/zhao-zhao/p/10283759.html
Copyright © 2020-2023  润新知