'wb'表中没有A2数据,即来自'客户代码'的数据,报此错误。
我正在处理XLSX表,分析数据,并根据样本重新分配存储的数据。根据样本表的分析,现在处理的表没有样本数据。在这种情况下,我不处理它们,而只存储现有数据。
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import openpyxl
wb = openpyxl.load_workbook('康之源药业.xlsx')
s1 = wb.active
def getdata(filename):
data = []
for col in s1.columns:
'''取出每一列的值'''
line = [cell.value for cell in col if cell.value != None]
data.append(line)
return data
def cachedata(data):
'''数据储存'''
for i in data:
'''为空的列表不处理'''
if len(i) != 0:
#data.remove(i)
if i[0] == '销售时间':
a0 = i
if i[0] == '生产厂家':
a1 = i
if i[0] == '客户代码':
a2 = i
if i[0] == '客户名称':
a3 = i
if i[0] == '产品代码':
a4 = i
if i[0] == '产品名称':
a5 = i
if i[0] == '产品规格':
a6 = i
if i[0] == '单位':
a7 = i
if i[0] == '批号':
a8 = i
if i[0] == '数量':
a9 = i
if i[0] == '含税单价':
a10 = i
if i[0] == '商品名称':
a11 = i
if i[0] == '不含税单价':
a12 = i
if i[0] == '含税金额':
a13 = i
if i[0] == '不含税金额':
a14 = i
if i[0] == '出货类型':
a15 = i
if i[0] == '客户城市':
a16 = i
if i[0] == '客户地址':
a17 = i
if i[0] == '经销商发货单号':
a18 = i
if i[0] == '出货仓库':
a19 = i
if i[0] == '购进单位编码':
a20 = i
if i[0] == '一级商编码':
a21 = i
if i[0] == '一级商名称':
a22 = i
return a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22
if __name__ == '__main__':
data = getdata(wb)
cachedata = cachedata(data)
a2 = cachedata[2]
print(a2)
错误信息:
Traceback (most recent call last):
File "C:\Users\Yang\Desktop\3.py", line 107, in <module>
cachedata = cachedata(data)
File "C:\Users\Yang\Desktop\3.py", line 76, in cachedata
return a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22
UnboundLocalError: local variable 'a2' referenced before assignment
但是当我添加a2
数据时,代码有效。
尝试为您的变量添加一个默认值,cachedata
以便它们仍然存在,无论它们是否被分配了一个值:
def cachedata(data):
a0 = a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 = a10 = a11 = a12 = a13 = a14 = \
a15 = a16 = a17 = a18 = a19 = a20 = a21 = a22 = []
'''数据储存'''
for i in data:
'''为空的列表不处理'''
if len(i) != 0:
#data.remove(i)
if i[0] == '销售时间':
a0 = i
if i[0] == '生产厂家':
a1 = i
if i[0] == '客户代码':
a2 = i
if i[0] == '客户名称':
a3 = i
if i[0] == '产品代码':
a4 = i
if i[0] == '产品名称':
a5 = i
if i[0] == '产品规格':
a6 = i
if i[0] == '单位':
a7 = i
if i[0] == '批号':
a8 = i
if i[0] == '数量':
a9 = i
if i[0] == '含税单价':
a10 = i
if i[0] == '商品名称':
a11 = i
if i[0] == '不含税单价':
a12 = i
if i[0] == '含税金额':
a13 = i
if i[0] == '不含税金额':
a14 = i
if i[0] == '出货类型':
a15 = i
if i[0] == '客户城市':
a16 = i
if i[0] == '客户地址':
a17 = i
if i[0] == '经销商发货单号':
a18 = i
if i[0] == '出货仓库':
a19 = i
if i[0] == '购进单位编码':
a20 = i
if i[0] == '一级商编码':
a21 = i
if i[0] == '一级商名称':
a22 = i
return a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句