背景
手动创建标签工作量大且无意义,简单用脚本处理。
步骤
1、数据从execl获取
2、通过QuerySet API将数据写入数据库
一、读取execl数据
用第三方模块xlrd处理execl数据
execl原始数据:
python处理如下:
import xlrd
def init_Label():
data = xlrd.open_workbook("E:\PycharmProject\myproject\Label.xlsx")
sheet_names = data.sheet_names()
print("所有sheet名称", sheet_names)
sheet = data.sheet_by_index(0)
print("通过索引获取第一个sheet页的数据,是个对象.")
nrows = sheet.nrows ##获取行数
ncols = sheet.ncols ##获取列数
print("The Label row:\033[1;35m %d \033[0m clos:\033[1;35m %d \033[0m." % (nrows, ncols))
row1 = sheet.row_values(3) ##1、通过下标获取某行的数据
row2 = sheet.row(rowx=3) ##2、通过下标获取某行的数据
col1 = sheet.col_values(0) ##获取某列的数据
print("第三行的数据为:", row1)
print("第三行的数据为:", row2)
print("第一列的数据为:", col1)
row_len = sheet.row_len(3) ##获取行的长度
print("第三行的数据长度:", row_len)
name = sheet.row_values(1)[0] ##获取单元格数据
value = sheet.col_values(1)[1]
print("第[1][0]的数据为: %s , 第[1][1]的数据为 %s." % (name, value))
if __name__ == "__main__":
init_Label()
"""
- Django QuerySet Api to create label
Version: 0.1
Date: 2020-03-11
"""
import os, django, sys
import xlrd
root_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..')
sys.path.append(root_dir)
os.environ['DJANGO_SETTINGS_MODULE'] = 'jumpserver.settings'
django.setup()
from assets.models import Label
def init_Label():
data = xlrd.open_workbook("/opt/jumpserver/apps/tools/Label.xlsx")
sheet = data.sheet_by_index(0)
nrows = sheet.nrows
ncols = sheet.ncols
print("The Label row:\033[1;35m %d \033[0m clos:\033[1;35m %d \033[0m." % (nrows, ncols))
for i in range(1, nrows):
label_name = Label.objects.filter(name=sheet.row_values(i)[0])
if label_name:
print("%s 标签已经存在." % sheet.row_values(i)[0])
continue
try:
Label.objects.create(
name=sheet.row_values(i)[0],
value=sheet.row_values(i)[1]
)
print("%s 创建成功." % sheet.row_values(i)[0])
except Exception as e:
print(e)
print("add label finish.")
if __name__ == "__main__":
init_Label()