python中xlwt的局限,Python xlwt 生成Excel和设置特定单元格不可编辑
请看我另一篇生成Excel的文章(推荐)
xlwt
这是一个供开发人员用来生成与Microsoft Excel 95到2003版兼容的电子表格文件的库。
包本身是纯Python,不依赖于标准Python发行版之外的模块或包。
安装
pip install xlwt
文档
示例
import xlwt
import sys
ezxf = xlwt.easyxf
# 生成excel文件
# data:数据
# encoding:编码
# sheet:工作表名称
# path:保存路径
# filename:文件名
# protect:是否开启保护
# password:保护密码
def save_excel(data, encoding, sheet, path, filename, protect, password):
try:
# 创建一个workbook 设置编码
workbook = xlwt.Workbook(encoding=encoding)
# 创建一个worksheet
worksheet = workbook.add_sheet(sheet)
worksheet.protect = protect # 設置保護
worksheet.password = password # 設置密碼
# 可编辑,horz center:水平居中,vert center:垂直居中,还可以在这里设置其他样式,颜色,边框等
editable = ezxf("protection: cell_locked false;align: horz center,vert center;")
# 不可編輯,horz center:水平居中,vert center:垂直居中,还可以在这里设置其他样式,颜色,边框等
read_only = ezxf("protection: cell_locked true;align: horz center,vert center;")
row = 0 # 行
col = 0 # 列
for item in data:
for k, v in item.items():
# 写入excel
# 参数对应 行, 列, 值
if k == "id" or k == "name" or k == "field_id" or k == "field_name":
worksheet.write(row, col, label=v, style=read_only) # 不可编辑
else:
worksheet.write(row, col, label=v, style=editable) # 可以编辑
col += 1
col = 0
row += 1
# 保存
workbook.save("{path}{filename}".format(path=path, filename=filename))
except Exception as e:
print("[ERROR]: {error}".format(error=e))
else:
print("[SUCCESS]: {path}{filename}".format(path=path, filename=filename))
if __name__ == '__main__':
data = [
{"id": "1", "name": "小明", "field_id": "005", "field_name": "005", "date": "2019-7-20", "morning_to_work": "10:00", "morning_off_work": "13:00", "afternoon_to_work": "14:00",
"afternoon_off_work": "19:00", "to_overtime": "20:00", "off_overtime": "22:00", "overtime_hours": "3"},
{"id": "2", "name": "小红", "field_id": "006", "field_name": "006", "date": "2019-7-21", "morning_to_work": "10:00", "morning_off_work": "13:00", "afternoon_to_work": "14:00",
"afternoon_off_work": "19:00", "to_overtime": "20:00", "off_overtime": "22:00", "overtime_hours": "3"},
]
save_excel(data=data, encoding="UTF-8", sheet="Sheet1", path="/xxx/xxx/xxx/", filename='xxx.xlsx', protect=True, password="xxx")
编辑受保护的单元格
受保护的单元格
编辑不受保护的单元格
不受保护的单元格
python中xlwt的局限,Python xlwt 生成Excel和设置特定单元格不可编辑相关推荐
- java使用poi生成Excel文件并合并单元格
java使用poi生成Excel文件并合并单元格 业务需要根据 分管部门 字段进行合并,现在提供一种思路. controller层 @Inject(target = "/inf ...
- 前锋python百度云_关于python:使用索引在pandas DataFrame中设置特定单元格的值
我创建了一个熊猫数据框架 df = DataFrame(index=['A','B','C'], columns=['x','y']) 得到了这个 x y A NaN NaN B NaN ...
- java 导出excel换行_java WriteExcelFile生成excel如何让在一个单元格内换行?
展开全部 使用\r\n试试. Java是一门面向对象编程语言,不仅吸收了62616964757a686964616fe59b9ee7ad9431333365633935C++语言的各种优点,还摒弃了C ...
- python中xlrd写操作_Python读写操作Excel模块_xlrd_xlwt_xlutils
Python 读写操作Excel -- 安装第三方库(xlrd.xlwt.xlutils.openpyxl) 如果仅仅是要以表单形式保存数据,可以借助 CSV 格式(一种以逗号分隔的表格数据格式)进行 ...
- python中readlines函数用法,python中read() readline()以及readlines()用法
我们谈到"文本处理"时,我们通常是指处理的内容.Python 将文本文件的内容读入可以操作的字符串变量非常容易.文件对象提供了三个"读"方法: .read(). ...
- python中八进制_在Python中以八进制格式输入数字
python中八进制 Syntax to convert octal value to an integer (decimal format), 将八进制值转换为整数(十进制格式)的语法, int(o ...
- python xlrd安装_详解python中xlrd包的安装与处理Excel表格
一.安装xlrd 地址 下载后,使用 pip install .whl安装即好. 查看帮助: >>> import xlrd >>> help(xlrd) Help ...
- python读取枚举_在python中枚举(enumerate in python)
在python中枚举(enumerate in python) 说, term='asdf'; InvertedIndex = {}; InvertedIndex[term] = [1,2,2,2,4 ...
- python 中^是什么意思,python 中%是什么意思
python中^是什么意思 在Python" // "表示整数除法.Python其它表达式:Python的表达式写法与C/C++类似.只是在某些写法有所差别.主要的算术运算符与C/ ...
最新文章
- DeepSpeed超大规模模型训练工具
- asp自动解析网页中的图片地址,并将其保存到本地服务器
- Keepalived+Nginx 实现双机热备
- JavaScript实现CountingSort计数排序算法(附完整源码)
- java 数组中差值最大数对,[算法题] 求数组有序后相邻元素之间的最大差值
- copy-maven-plugin - where is it configured - Maven原理探究
- 什么是Microsoft Teams的App Studio
- mysql防止数据查找不到_为了防止数据库崩溃使数据丢失的解决方案
- Arcgis创建SDE_Geometry、SDO_Geometry的区别
- hive-04-Hive函数大全
- 缓存穿透、缓存雪崩、缓存击穿的原因及解决方案
- Post传值时间特殊字符处理比如 p/p当作参数传递到后台
- 机器学习在微博信息流推荐中的应用实践
- 【计算机网络】第九章:应用层
- java计算机毕业设计糖果销售管理系统源码+系统+数据库+lw文档+mybatis+运行部署
- 搞 Java 的年薪 40W 是什么水平?
- 如何在CentOS 7系统搭建企业常用的远程yum仓库,详细教学!
- Vulkan_SSAO—屏幕空间环境光遮蔽
- 医学主题词表(Medical Subject Headings, MeSH)
- 进北京软通动力的经历
热门文章
- 在soa工程中使用dubbo的步骤
- centos 7.9密码改密钥登陆
- JAVA中Final的用法
- linux菜鸟入门-1
- LeetCode刷题知识总结
- 平衡二叉排序树(完整案例详解及完整C代码实现)
- 5.1 计算机网络之传输层(传输层提供的服务及功能概述、端口、套接字--Socket、无连接UDP和面向连接TCP服务)
- 3.1 《数据库系统概论》SQL概述及数据定义(模式SCHEMA、表TABLE、索引INDEX)
- mysql8.0.20忘记密码_mysql8.0.19忘记密码的完美解决方法
- idea开发swing项目_IntelliJ IDEA 开发swing(一)