1、openpyxl使用

  涉及到单元格合并、赋值

'''
.格式转换
raw_data create_data boolean Bool
uint8 UInt8
int8 Int8
uint16 UInt16
int16 Int16
uint32 UInt32
int32 Int32
.定点数数据类型格式转换
'''
from openpyxl import load_workbook from openpyxl.styles import Color, Font, Alignment
# wb = load_workbook("EPA2_data.xlsx")
wb = load_workbook("EPA2_data.xlsx")
sheet = wb.get_sheet_by_name('Output')
#格式居中显示
align = Alignment(horizontal='center', vertical='center')
TCrows=[]
Cases=[] #<Worksheet "Output">
# print(sheet)
# print(sheet.max_row)
# print(sheet.max_column) raw_type_dic = {
'boolean': 'Bool',
'uint8': 'UInt8',
'int8': 'Int8',
'uint16': 'UInt16',
'int16': 'Int16',
'uint32': 'UInt32',
'int32': 'Int32', } for row in sheet.iter_rows():
TCrows.append(row)
for i in range(, ):
Cases.append(TCrows[i]) totalNum =
runnable_data_list = []
start =
count =
test_merge_list = [] for item in range(,totalNum):
#Runnable名称
runnable_data = Cases[item][].value # fixdt(,,0.01,)
print('第%s次'%count+':'+str(runnable_data))
merge_list = []
if item != :
if runnable_data != runnable_data_list[item-]:
print('meege====='+ str(item))
# sheet.merge_cells("B%s:B%s" % (temp, item+))
merge_list.append(start)
stop = item+
merge_list.append(stop)
start = stop+
test_merge_list.append(merge_list)
if item == totalNum-:
print('最后一次%s'%count)
stop = item
merge_list.append(start)
merge_list.append(stop)
test_merge_list.append(merge_list) # if item != :
# if runnable_data != runnable_data_list[item-]:
# print('meege====='+ str(item))
# sheet.merge_cells("B%s:B%s" % (temp, item+))
# temp= item+
# print(temp)
# print(runnable_data_list)
#
# print(runnable_data) type_data = Cases[item][].value # fixdt(,,0.01,)
# . 判断是否字典类型type
if type_data in raw_type_dic:
#APP Data Type
Cases[item][].value = raw_type_dic[type_data]
#Base Type
Cases[item][].value = type_data
#Compu Method flag
Cases[item][].value = int('')
#精度
Cases[item][].value = int('')
#offset
# Cases[item][].value = ''
elif "fixdt" in type_data:
format_list = []
format_str = ''
a = ''
b = ''
c = ''
d = ''
e = ''
f = ''
dstr = type_data.replace('fixdt(', '')
dstr = dstr.replace(')', '')
dlist = dstr.split(',')
for d in dlist:
format_list.append(d)
# .规则1,判断符号位
if format_list[] == '':
a = 'U'
baseType = 'unit'
else:
a = 'I'
baseType = 'int'
# 规则2,判断数据长度位
b = format_list[] if '.' in format_list[]:
c = len(format_list[].split('.')[])
temp =
d_count =
for i in format_list[].split('.')[]:
if i != '':
temp = d_count
d_count +=
d = format_list[].split('.')[][temp:]
else:
c = ''
d = format_list[]
# 规则3,判断小数点长度
if '-' in format_list[]:
e = 'N'
f = format_list[][:]
else:
e = 'P'
f = format_list[]
format_str = '%s%sS%s%s%s%s' % (a, b, c, d, e, f) # APP Data Type
Cases[item][].value = format_str
# Base Type
Cases[item][].value = baseType + b
# Compu Method flag
Cases[item][].value = int('')
# 精度
Cases[item][].value =format_list[]
# offset
Cases[item][].value = format_list[]
else:
print("请确认第%s个是否输入格式正确" % count)
count +=
runnable_data_list.append(runnable_data)
print(test_merge_list)
for key in test_merge_list:
sheet.merge_cells("B%s:B%s" % (key[], key[]),align) wb.save('EPA2_data.xlsx') def read_excel_type():
#读取excel的type列数据
raw_list = []
#获取数据类型这一列的数据
for cell in list(sheet.columns)[]:
raw_list.append(cell.value) return raw_list def format_data(data_list): #. 判断是否字典类型type
count =
for data in data_list:
if data in raw_type_dic:
data_list[count] = raw_type_dic[data]
# print("第%s个判断在字典数据类型里"%count)
# .判断是否是定点数数据类型
elif "fixdt" in data:
format_list = []
format_str = ''
a = ''
b = ''
c = ''
d = ''
e = ''
f = ''
dstr = data.replace('fixdt(', '')
dstr = dstr.replace(')', '')
dlist = dstr.split(',')
for d in dlist:
format_list.append(d)
#.规则1,判断符号位
if format_list[] == '':
a = 'U'
else:
a = 'I'
#规则2,判断数据长度位
b = format_list[]
if '.' in format_list[]:
c = len(format_list[].split('.')[])
temp =
d_count =
for i in format_list[].split('.')[]:
if i != '':
temp = d_count
d_count +=
d = format_list[].split('.')[][temp:]
else:
c = ''
d = format_list[]
#规则3,判断小数点长度
if '-' in format_list[]:
e = 'N'
f = format_list[][:]
else:
e = 'P'
f = format_list[] format_str = '%s%sS%s%s%s%s'%(a,b,c,d,e,f)
data_list[count] = format_str
else:
print("请确认第%s个是否输入格式正确" % count)
count +=
print(data_list)
#.其他数据类型,显示提示判断输入数据是否正确 # raw_data = read_excel_type()
# raw_data = raw_data[:]
# print(raw_data)
# format_data(raw_data) #合并单元格RUNNANBLE 第1列
# def read_excel_type():
# #读取excel的type列数据
# raw_list = []
# #获取数据类型这一列的数据
# print()
# for cell in list(sheet.columns)[]:
# print(cell.value)
#ws.merge_cells ("A1:C3") #合并单元格 # read_excel_type()
max_row = sheet.max_row
# print(max_row)
# for i in range(,):
# for j in range(,):
# a = sheet.cell(row = i, column = j)
# print(a.value)
#
# # sheet.merge_cells ("B2:B10")
# sheet.unmerge_cells ("B2:B10")
# wb.save('EPA2_data.xlsx')

openpyxl工具总结的更多相关文章

  1. 7、Python文件操作工具 openpyxl 工具 2

    创建一个工作簿 使用openpyxl没有必要先在系统中新建一个.xlsx,我们需要做的只需要引入Workbook这个类,接着开始调用它. >>> from openpyxl impo ...

  2. 6、Python文件操作工具 openpyxl 工具

    #-*- coding:utf-8 -* from  openpyxl.reader.excel  import  load_workbook import  MySQLdb import  time ...

  3. 用python读写excel的强大工具:openpyxl

    最近看到好几次群里有人问xlwt.wlrd的问题,怎么说呢,如果是office2007刚出来,大家用xlsx文件用不习惯,还可以理解,这都10年过去了喂,就算没有进化到office2016,还在用of ...

  4. 【转】用python读写excel的强大工具:openpyxl

    最近看到好几次群里有人问xlwt.wlrd的问题,怎么说呢,如果是office2007刚出来,大家用xlsx文件用不习惯,还可以理解,这都10年过去了喂,就算没有进化到office2016,还在用of ...

  5. Python excel 库:Openpyxl xlrd 对比 介绍

    打算用python做一个写mtk camera driver的自动化工具. 模板选用标准库里面string -> Template 即可 但要重定义替换字符,稍后说明 配置文件纠结几天:cfg, ...

  6. Python 和 R 数据分析/挖掘工具互查

    如果大家已经熟悉python和R的模块/包载入方式,那下面的表查找起来相对方便.python在下表中以模块.的方式引用,部分模块并非原生模块,请使用 pip install * 安装:同理,为了方便索 ...

  7. 记录——excel导出lua工具(python实现)

    项目需要一个从excel导出lua配置表的工具,之前的工具是主程写的,效率极差,i7 CPU 一次全部导出要花掉1个多小时.匪夷所思的是,这么渣的效率,居然用了整整一年.当 然,中途有人反映效率差,主 ...

  8. python3.6 +tkinter GUI编程 实现界面化的文本处理工具

    更新: 2017.07.17 补充滚动条.win批处理拉起py 2017.08.13 新增自定义图标 --------原创      blogs:    http://www.cnblogs.com/ ...

  9. 【转】Python 爬虫的工具列表【预】

    这个列表包含与网页抓取和数据处理的Python库 网络 通用 urllib -网络库(stdlib). requests -网络库. grab – 网络库(基于pycurl). pycurl – 网络 ...

随机推荐

  1. svn 删除svn项目命令

    svn delete svn://127.0.0.1:3690/project -m delete

  2. 第九次java课堂笔记

  3. [Oracle][DATAGUARD] LOGICAL STANDBY环境里,有些SEQUENCE无法应用,导致Primary和Standby无法同期

    今天遇到了一个客户,问题是这样的,客户构筑了一个RACtoRAC的 LOGICAL STANDBY环境.并用EM在监视同期情况,发现EM页面上55115和55116这两个SEQUENCE一直在应用. ...

  4. 自动调参库hyperopt+lightgbm 调参demo

    在此之前,调参要么网格调参,要么随机调参,要么肉眼调参.虽然调参到一定程度,进步有限,但仍然很耗精力. 自动调参库hyperopt可用tpe算法自动调参,实测强于随机调参. hyperopt 需要自己 ...

  5. Linux系统的磁盘管理

    Linux系统的磁盘管理有三个命令:df.du.fdisk. df:列出Linux中所有文件系统的整体磁盘使用量: du:对文件和目录所占用磁盘空间的查看: fdisk:用于磁盘分区时列出所有的磁盘. ...

  6. SoapUI--the use of Script Library

    SoapUI--the use of Script Library 有两种方法在soapUI中引用自己的groovy脚本库. 方法一:把自己的script folder放到soapUI install ...

  7. 在eclipse中安装groovy插件

    在eclipse中安装groovy插件详细步骤: step 1:检查自己的eclipse版本:在help->About Eclipse中查看: step 2:进入 https://github. ...

  8. 马凯军 周强 张季跃《面向对象与程序设计 Java》第十四周学习总结

    实验十四  Swing图形界面组件 实验时间 20178-11-29 一.知识部分 1.模型-视图-控制器模式 模型:储存内容 视图:显示内容 控制器:处理用户输入 2.布局管理 2-1.流布局管理器 ...

  9. Decorator 装饰(结构型)

    Decorator 装饰(结构型) 一:描述: Decorator装饰模式是动态地给一个对象增加一些额外的功能职责特性. 来替换以前使用的继承来静态扩展对象的功能,避免子类的增多,做到更灵活: 注:和 ...

  10. Zedboard搭建Linux嵌入式环境

    ZYNQ是ARM硬核和PL软核的结合体,Xillybus官方为他开发了驱动套件Xillinux,赶快将开发板投入使用吧! 本随笔参考了众多博主和官方教程:(基本上就是把官方教程翻译了一遍,呵呵:)) ...