当前位置:首页 > 网站建设 > 正文内容

dede自定义表单html模板(html生成自定义表格)

网站建设9个月前 (02-08)350

Python对Excel表格处理非常方便,本文专门对Excel单元格样式设置进行总结,日常用到的设置基本都可以用openpyxl库完成。

创建一个表格

openpyxl是第三方库,如果你还没有安装,输入下方命令安装。

pip install openpyxl

在开始设置单元格前,先创建一个excel表格,下方代码可以新建一个Excel表格,并写入内容。

# coding=utf-8

importopenpyxl

# 创建一个excel表格对象

wb = openpyxl.Workbook

# 获取当前活跃的sheet页,默认就是第一个sheet页

ws = wb.active

# 在表格的单元格中写入内容

ws.cell(row= 2, column= 3).value = '小斌哥ge'

ws.cell(row= 2, column= 4).value = '小斌哥ge'

# 处理完成后保存表格,会在当前目录生成一个excel文件

wb.save(filename= 'cell.xlsx')

dede自定义表单html模板(html生成自定义表格)

展开全文

# 关闭表格对象

wb.close

效果:

代码含义参考注释,我在两个相邻的单元格中写入了相同的内容,后面的代码对一个单元格设置样式,另一个单元格不做处理,方便对比。

给单元格写入内容的方式有两种,一种是给cell的value属性赋值,如上面的代码,另一种是用cell的参数设置,如ws.cell(row=2, column=3, value='xxx'),两种方式结果一样。

本文后面的代码全部都添加在单元格写入内容后,保存内容(wb.save)前,顺序不能弄反了。(导包的代码可以统一放到前面)

单元格字体和文字样式

fromopenpyxl.styles importFont

# 设置字体和文字样式

font = Font(name= "微软雅黑", size= 12, color= 'FF0000', bold= True,

italic= True, underline= 'single', strike= False)

ws.cell(row= 2, column= 3).font = font

效果:

字体和文字样式使用Font类设置,赋值给cell的font属性。

Font类常用参数说明:

name: 字体名称。

size: 字体大小。

color: 字体颜色。使用16进制的RGB颜色值,这里的颜色值中没有#。

bold: 设置字体加粗,布尔值。

italic: 设置字体倾斜,布尔值。

underline: 设置下划线的样式,默认没有。共有 single, double, singleAccounting, doubleAccounting 四种选择,single单线,double双线,不带Accounting长度与文字一致,带Accounting长度与单元格宽度一致。

strike: 设置中划线,布尔值。

设置单元格高和宽

# 设置宽高

# row_dimensions中指定要设置高度的行

ws.row_dimensions[ 2].height = 50

# column_dimensions中指定要设置宽度的列

ws.column_dimensions[ 'C'].width = 20

效果:

单元格的高和宽不是按单元格设置,而是按行和按列设置,因为Excel中同一行的高度和同一列的宽度相同。

设置方法:

ws.row_dimensions[2].height: 设置第2行的高。

ws.column_dimensions['C'].width: 设置C列的宽。

注意,指定行时使用数字,指定列时使用大写字母。这与Excel的行列编号一致。

单元格对齐方式

fromopenpyxl.styles importAlignment

# 设置内容的对齐方式

align = Alignment(horizontal= 'left', vertical= 'center', text_rotation= 0,

wrap_text= True, shrink_to_fit= True, indent= 1)

ws.cell(row= 2, column= 3).alignment = align

效果:

单元格对齐方式使用Alignment类设置,赋值给cell的alignment属性。

Alignment类常用参数说明:

horizontal: 水平方向对齐方式。默认general(常规),可以设置为:left(左对齐),center(居中),right(右对齐),distributed(分散对齐),centerContinuous(跨列居中),justify(两端对齐),fill(填充)。

vertical: 垂直方向对齐方式。可以设置为:top(顶端对齐),center(居中), bottom(底部对齐),justify(两端对齐),distributed(分散对齐)。

text_rotation: 单元格旋转角度。旋转方向为逆时针,旋转后内容排列方向发生变化。

wrap_text: 设置自动换行,布尔值。

shrink_to_fit: 内容自适应单元格大小,布尔值。

indent: 缩进,传入缩进的字符数。

单元格填充颜色

fromopenpyxl.styles importPatternFill

# 设置单元格填充颜色和样式

pattern = PatternFill(fill_type= 'lightUp', start_color= "0000FF", end_color= '00FF00')

ws.cell(row= 2, column= 3).fill = pattern

效果:

单元格填充颜色使用PatternFill类设置,赋值给cell的fill属性。

PatternFill类参数说明:

fill_type: 填充样式,如完整填充,虚线填充,斜线填充等,通常使用solid。可以设置的样式有: lightTrellis, lightGray, mediumGray, darkHorizontal, lightHorizontal, darkGrid, darkDown, gray0625, lightDown, solid, darkTrellis, lightVertical, lightUp, gray125, lightGrid, darkVertical, darkGray, darkUp, 就不一一介绍了,可以自己多尝试。

start_color: 设置填充颜色。颜色值与前面一样,使用16进制的RGB颜色值,不带#。

end_color: 设置背景颜色。如果填充颜色没有填满(例如斜线填充),空隙处看到的是背景颜色。

PatternFill类还有三个参数,与上面的三个参数作用是重复的,patternType等价于fill_type,fgColor等价于start_color,bgColor等价于end_color。openpyxl单元格设置的好几个类都有这种参数重复的情况,其他类就不重复介绍了。

单元格填充渐变颜色

fromopenpyxl.styles importGradientFill

# linear模式,根据stop设置的多个颜色渐变填充,degree设置顺时针的旋转角度

# gradient = GradientFill(type='linear', degree=30,

# stop=('FF0000', '00FF00', '0000FF'))

# path模式,根据stop设置的多个颜色从左上角至右下角、由内至外填充,

# left,right,top,bottom设置上下左右距离边框的距离百分比

gradient = GradientFill(type= 'path', left= 0.1, right= 0.1, top= 0.1, bottom= 0.1,

stop=( 'FF0000', '00FF00', '0000FF'))

# ws.cell(row=2, column=3).fill = gradient

效果:

linear模式

path模式

单元格填充渐变颜色使用GradientFill类设置,赋值给cell的fill属性。

GradientFill类参数说明:

type: 填充模式,分为两种模式'linear'、'path'。

stop: 设置渐变填充用的多个颜色,传入一个由RGB颜色值组成的元组。

linear模式:根据stop设置的多个颜色从左至右渐变填充。

degree: 设置渐变填充颜色顺时针的旋转角度。

path模式:根据stop设置的多个颜色从左上角至右下角、由内至外渐变填充。

left: 设置颜色到左边框的距离百分比(具体请看截图的效果),设置为0到1的小数。

right: 设置颜色到右边框的距离百分比。

top: 设置颜色到上边框的距离百分比。

bottom: 设置颜色到下边框的距离百分比。四个值可以不同。

设置单元格边框样式

fromopenpyxl.styles importSide, Border

# 设置线条的样式和颜色

side = Side(style= "thick", color= "FF0000")

# 设置单元格的边框线条

border = Border(top=side, bottom=side, left=side, right=side)

ws.cell(row= 2, column= 3).border = border

效果(为了显示得更明显,先将颜色填充的代码注释掉):

单元格边框样式使用Border类设置,赋值给cell的border属性。边框线条的样式使用Side类设置,传给Border类中的参数。

Side类参数说明:

style: 设置线条样式,常用样式有medium, thin, thick。可以设置的样式有: dashDotDot, thick, mediumDashDotDot, thin, dotted, mediumDashed, dashDot, double, medium, hair, mediumDashDot, dashed, slantDashDot, 不一一介绍,可以自己多尝试。

color: 设置线条颜色。

Border类常用参数说明:

top: 设置单元格的上边框,传入Side类实例。

bottom: 设置单元格的下边框。

left: 设置单元格的左边框。

right: 设置单元格的右边框。

注意,设置单元格边框样式时,前面设置单元格对齐方式中的单元格旋转参数text_rotation会影响边框的角度,可以根据需要配合修改,通常设置text_rotation为0。

Border类中,还有一些其他参数,outline设置整个单元格的边框,vertical设置垂直方向,horizontal设置水平方向,diagonal设置对角线, diagonal_direction设置对角线的角度,不过openpyxl有些版本不支持这些参数。所以,统一使用上下左右就行了,而且这样可以给不同边设置不一样的 样式。

使用openpyxl内置样式

# 使用内置样式

ws.cell(row= 2, column= 3).style = 'Title'

效果:

openpyxl内置了很多设置好的样式,可以直接赋值给cell的style属性。

可以用的内置样式有:

常规:即没有样式,Normal。

数字样式: Comma, Comma [0], Currency, Currency [0], Percent。

信息样式: Calculation, Total, Warning Text, Explanatory Text。

文本样式: Title, Headline 1, Headline 2, Headline 3, Headline 4, Hyperlink, Followed Hyperlink, Linked Cell。

比较样式: Input, Output, Check Cell, Good, Bad, Neutral。

高亮样式: Accent1, 20 % - Accent1, 40 % - Accent1, 60 % - Accent1, Accent2, 20 % - Accent2, 40 % - Accent2, 60 % - Accent2, Accent3, 20 % - Accent3, 40 % - Accent3, 60 % - Accent3, Accent4, 20 % - Accent4, 40 % - Accent4, 60 % - Accent4, Accent5, 20 % - Accent5, 40 % - Accent5, 60 % - Accent5, Accent6, 20 % - Accent6, 40 % - Accent6, 60 % - Accent6, Pandas。

提供的 样式非常多,可以慢慢尝试。

当然,也可以自定义样式,利用前面介绍的方式定义好字体、对齐方式等,然后借助NamedStyle类,将前面设置的样式传入NamedStyle类中生成一个实例,然后赋值给cell的style属性。受篇幅限制就不再详细演示了。

fromopenpyxl.styles importNamedStyle

此外,也可以将前面设置好的各种样式封装到一个函数中,重复调用,与自定义样式的效果异曲同工。

合并单元格

ws.cell(row= 5, column= 5).value = '秦'

ws.cell(row= 5, column= 6).value = 'A'

ws.cell(row= 5, column= 7).value = 'B'

ws.cell(row= 5, column= 8).value = 'W'

ws.cell(row= 6, column= 5).value = 'C'

ws.cell(row= 6, column= 6).value = 'D'

ws.cell(row= 6, column= 7).value = 'E'

ws.cell(row= 6, column= 8).value = 'W'

# 合并单元格

ws.merge_cells(start_row= 5, start_column= 5, end_row= 6, end_column= 7)

# ws.merge_cells(range_string='E5:G6')

效果:

在合并前,先在表格中写入一些内容,然后对其中的部分单元格进行合并。

合并单元格使用ws.merge_cells方法,参数介绍:

start_row: 开始合并的行。

start_column: 开始合并的列。

end_row: 结束合并的行。

end_column: 结束合并的列。这四个值所在的行/列都会被合并(闭区间)。

range_string: 指定合并的单元格范围,如E5:G6,第一个值是左上角的单元格,第二个值是右下角的单元格。 如果没有设置range_string,则merge_cells会根据前四个参数自动计算出range_string。如果五个参数都设置了,则range_string会覆盖前四个参数的设置。

合并单元格后,除了左上角的单元格的值保留,其他单元格的值都会被删除,并且其他单元格都变成了只读(read-only)单元格,不能写入内容。

给合并后的单元格设置前文介绍的各种样式时,字体、对齐方式、颜色填充用左上角的单元格设置,高宽按行列设置,边框样式要依次对每一个被合并的处于边缘的单元格设置。

取消合并单元格

# 取消合并单元格

ws.unmerge_cells(start_row= 5, start_column= 5, end_row= 6, end_column= 7)

# ws.merge_cells(range_string='E5:G6')

效果:

取消合并单元格使用ws.unmerge_cells方法,参数与ws.merge_cells方法完全一样。

取消合并后,合并单元格时被删除的内容不能恢复,除了左上角的单元格,其他单元格的内容为空,可以重新写入内容。

总结

本文完整总结了用Python设置Excel单元格样式的知识,全是干货,非常值得收藏。

文中用一个单元格做演示,实际使用时经常需要批量操作,这个时候加个for循环,改变cell中的row, column值,就可以批量处理了。批量处理的方法还有很多,可以因地制宜。

本文简单易学,很多地方比官方文档还详细,希望对你有帮助,期待你的三连。

参考文档:

[1] openpyxl官方文档:https://openpyxl.readthedocs.io/en/stable/styles.html#cell-styles

自动化办公我还是非常推荐下面这几本书的,有需要的同学可以公众号后台咨询小助手。公众号:后台输入:小助手 ,暗号(自动化书).

入门: 最全的零基础学Python的问题 | 零基础学了8个月的Python |实战项目 | 学Python就是这条捷径

干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |从万众期待到口碑扑街!唐探3令人失望 | 笑看新倚天屠龙记 | 灯谜答题王 | 用Python做个海量小姐姐素描图 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影

趣味:弹球游戏 | 九宫格 | 漂亮的花 | 两百行Python《天天酷跑》游戏!

AI:会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影

小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf! |再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐! |

年度爆款文案

1). 卧槽!Pdf转Word用Python轻松搞定 !

2).学Python真香!我用100行代码做了个网站,帮人PS旅行图片,赚个鸡腿吃

3).首播过亿,火爆全网,我分析了《乘风破浪的姐姐》,发现了这些秘密

4). 80行代码!用Python做一个哆来A梦分身

5).你必须掌握的20个python代码,短小精悍,用处无穷

6). 30个Python奇淫技巧集

7). 我总结的80页《菜鸟学Python精选干货.pdf》,都是干货

8). 再见Python!我要学Go了!2500字深度分析 !

9).发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片

扫描二维码推送至手机访问。

版权声明:本文由飞速云SEO网络优化推广发布,如需转载请注明出处。

本文链接:http://muyuzhen.com/post/86517.html

分享给朋友:

“dede自定义表单html模板(html生成自定义表格)” 的相关文章

网站建设费用(网站建设费用多少钱)

网站建设费用(网站建设费用多少钱)

本篇文章给大家谈谈网站建设费用,以及网站建设费用多少钱对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、网站建设费用,公司建一个网站需要多少钱 2、网站建设需要多少钱? 3、建一个网站要多少钱,建网站最低费用 4、网站建设一般需要多少钱? 5、网站制作需要多...

衡阳网站seo(衡阳网站运营总监招聘)

衡阳网站seo(衡阳网站运营总监招聘)

本篇文章给大家谈谈衡阳网站seo,以及衡阳网站运营总监招聘对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、SEO优化|如何选择长尾关键词? 2、衡阳除了百度推广!衡阳还有哪个网络公司做推广的最好? 3、衡阳SEO 城市SEO为什么不赚钱? 4、衡阳SEO如何推...

苏州优化网站(苏州企业网站优化)

苏州优化网站(苏州企业网站优化)

本篇文章给大家谈谈苏州优化网站,以及苏州企业网站优化对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、258苏州seo网站优化方案制作的核心是什么? 2、寻苏州专业网站优化公司,我公司主要想提升百度排名,朋友们请推荐下!坐等回复 3、苏州网站优化找哪家 258苏州...

免费模板的软件有哪些(免费模板的软件有哪些下载)

免费模板的软件有哪些(免费模板的软件有哪些下载)

今天给各位分享免费模板的软件有哪些的知识,其中也会对免费模板的软件有哪些下载进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、哪里有免费的建站软件啊,附带模板。还有教程,谢谢了。商人勿进,专业老师热烈欢迎。 2、什么软件可以免费下载简历模板制作简历?...

3dmax双眼皮吊顶建模(3d中集成吊顶怎么建模)

3dmax双眼皮吊顶建模(3d中集成吊顶怎么建模)

本篇文章给大家谈谈3dmax双眼皮吊顶建模,以及3d中集成吊顶怎么建模对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、你想要你的天花板与众不同吗,不妨试试这几种吊顶造型吧? 2、什么是双眼皮吊顶?双眼皮吊顶款式有哪些? 3、双眼皮吊顶重叠角不除开? 4、双眼皮...

美容院开业邀请函模板(美容院开业邀请函范文)

美容院开业邀请函模板(美容院开业邀请函范文)

本篇文章给大家谈谈美容院开业邀请函模板,以及美容院开业邀请函范文对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、美容院邀开业邀请函内容怎么写 2、新店开业邀请函范文_新店开业请柬格式范文 3、开业邀请 4、简单的开业邀请短信 美容院邀开业邀请函内容怎么写 具...