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. java切割音频文件

    工具: 一个jar包即可:jave-1.0.2.jar 可以切割wav格式的音频文件 完整工程目录 就一个jar包,一个main类 代码: package com.zit; import java.i ...

  2. spring整合redis(哨兵模式)

    首先服务器搭建哨兵模式(我这里使用的是Windows8系统),感谢两位博主,少走不少弯路,在此给出链接:服务器哨兵模式搭建和整合哨兵模式 什么一些介绍就不介绍了,可以看一下连接,比较详细,初次接触,当 ...

  3. 最短路径HDU3790(Dijkstra)

    准备考研,荒废了好多东西,希望做了正确的决定 /********************************************************* *author:chen xin * ...

  4. css书写规范以及如何写出赏心悦目的代码

    css书写规范: 1. 编码统一为utf-8;2. 协作开发及分工: i根据各个模块, 同时根据页面相似程序, 事先写好大体框架文件,同时根据页面相似程序,事先写好大体框架文件.共用css文件base ...

  5. LINUX安装vm tools及使用方法(centos7,vm12)

    1.安装vmtools: 下载文件之后,到自动挂在的目录下(/run/media/用户名),将文件cp到其他的目录: 然后到其他的目录,解压缩,执行pl文件,执行方式:./vmware-install ...

  6. Docker桥接宿主机网络与配置固定IP地址

    有些需求是把这个容器与宿主机在同一个网段,但是本人不建议这样子去操作,因为一个容器本身就是一个封装好的服务.建议去按默认的网络去实现. 临时设置 [root@linux-docker01 ~]# vi ...

  7. pyCharm中BeautifulSoup应用

    BeautifulSoup 是第三方库的工具,它包含在一个名为bs4的文件包中,需要额外安装,安装方式 非常简单,进入python的安装目录,再进入scripts子目录,找到pip程序, pip in ...

  8. FINS/TCP_OMRON(1)

    使用FINS/ TCP与欧姆龙PLC沟通 可参考下列教学 using System.Net; using System.Net.Sockets; 上面必须使用; IPAddress ipAddr = ...

  9. maven源码打包

    1.打包时附加外部Jar包 <!--编译+外部 Jar打包-->          <plugin>            <artifactId>maven-co ...

  10. docker学习笔记(3)

    docker 搭建私有仓库 docker-registry是官方提供的工具,可以用于构建私有的镜像仓库.本文内容基于 docker-registry v2.x 版本. 安装运行 docker-regi ...