学习笔记之xlsx文件操作篇

author author     2022-09-16     218

关键词:

利用python3进行xlsx文件的简单操作


模块:xlsxwriter

环境:centos/Linux


1、创建excel文件

2、创建sheet表

3、开始书写sheet表的正文


先来一串代码压压惊

#############建立xlsx文件并写入数据 图片################

import xlsxwriter

workbook = xlsxwriter.Workbook(‘/home/1.xlsx‘)         #建立一张1.xlsx表
worksheet = workbook.add_worksheet(‘渗透报告‘)   #在1.xlsx表中建立一个名为渗透报告的表

worksheet.set_column(‘A:D‘, 20)           #设置A到D的横向宽度为各为20(set_row设置纵向)              

worksheet.write(‘A1‘,‘Hello‘)             #在 A1 表中写入 Hello
worksheet.write(‘A2‘,‘World‘)           

worksheet.write(‘B2‘,‘你好‘)                               
worksheet.write(2,0,32)                #在第二行第零列写入数字 32
worksheet.write(3,0,32.2)               #在第三行第零列写入数字 32.2
worksheet.write(4,0,‘=SUM(A3:A4)‘)           #在第四行第零列写入A3+A4的值

worksheet.insert_image(‘B5‘,‘./baidu.png‘)       #在B5中添加图片./baidu.png
workbook.close()                                        #关闭1.xlsx表


#xlsxwriter模块的一些操作方法:


#普通操作

 xlsxwriter.Workbook(‘excel文件名‘)           #创建excel文件

 workbook.add_worksheet(‘表名’)            #创建sheet表  默认表名为sheet

 worksheet.write(‘A1‘,‘Hello‘)              #在A1单元格写入‘Hello‘字符串

 worksheet.write(2,0,32)                  #在第二行第零列写入数字32

 worksheet.write_row(‘A1‘,title,format)        #从A1横向写入title以format格式 

                                   #这里title为变量 可以是列表或字母等

 worksheet.write_column(‘A2‘,webname,format)     #从A2纵向写入webname以format格式

                                   #这里webname为变量 可以是列表或字母等

 worksheet.write_formula(‘I‘+cur_row,‘=AVERAGE(B‘+cur_row+‘:H‘+cur_row+‘)‘,format_ave)

                                   #write_formula() 写公式

 worksheet.insert_image(‘B5‘,‘./baidu.png‘)      #在B5中添加图片baidu.png   ./b表示当前文件夹
 workbook.close()                        #关闭文件

 


#表格操作 

 workbook.add_format([properties])      #用于创建一个新的格式对象,参数 [properties]为                              指定一个格式属性的字典

                             如:bold = workbook.add_format( { ‘bold‘ : True } )

 #同样也可以这样

 format = workbook.add_format()        #创建自定义格式对象   (格式如下)

 format.set_border(1)               #设定边界宽度为1

 format.set_bg_color(‘#cccccc‘)        #设置背景颜色为#ccccccc

 format.set_align(‘center‘)           #设置对齐方式为 剧中 

 format.set_bold()                 #设置为粗体

 format.set_num_format(‘0.00‘)         #设置数字格式为保留两个小数


#图标操作 

 workbook.add_chart({‘type‘:‘column‘})              #建立图表   类型:柱状图

 chart.add_series({

        ‘categories‘: ‘=Sheet1!$B$1:$H$1‘,          #类别为sheet1表中B1:H1

        ‘values‘ : ‘=Sheet1!$B$‘+cur_row+‘:$H$‘+cur_row, #值为‘B‘+cur_row:‘H‘+cur_row

        ‘line‘ : {‘color‘ : ‘black‘},             #线条 黑色

        ‘name‘ : ‘Sheet1!$A$‘+cur_row,             #名字为‘A‘+cur_row  cur_row是变量 

         })


 chart.set_size({‘width‘ : 577,‘height‘ : 288})   #设置图表的高与宽

 chart.set_title({‘name‘ :‘智游网站业务周报‘})    #设置图表名称

 chart.set_y_axis({‘name‘ : ‘Mb/s‘})          #设置图表 y轴的名称

 worksheet.insert_chart(‘A10‘,chart)          #插入图表位置 在A10格


###################如果你还不懂  看看下面的代码######################

################  建立xlsx文件  并生成图表文件  ##############
#coding: utf-8
import xlsxwriter

workbook = xlsxwriter.Workbook(‘./2.xlsx‘)
worksheet = workbook.add_worksheet()                  
chart = workbook.add_chart({‘type‘:‘column‘})         #建立图标   类型:柱状图

title = [‘网站名称‘,‘星期一‘,‘星期二‘,‘星期三‘,‘星期四‘,‘星期五‘,‘星期六‘,‘星期日‘,‘平均流量‘]
webname = [‘网站1‘,‘网站2‘,‘网站3‘]

data = [
    [150,152,158,149,155,145,148],
    [2111,222,120,10,333,11,59292],
    [999,111,222,111,333,44,111],
]

format = workbook.add_format()            #创建自定义样式对象
format.set_border(1)                  #设定边界宽度为1

format_title = workbook.add_format()         #建立一个format_title样式(样式内容如下)
format_title.set_border(1)               #设置边界宽度为 1
format_title.set_bg_color(‘#cccccc‘)           #设置背景颜色为#ccccccc
format_title.set_align(‘center‘)            #设置对齐方式为 剧中
format_title.set_bold()                 #设置为粗体

format_ave = workbook.add_format()            
format_ave.set_border(1)
format_ave.set_num_format(‘0.00‘)            #设置数字为两位小数

worksheet.write_row(‘A1‘,title,format_title)          #从A1横向写入title以format_title格式
worksheet.write_column(‘A2‘,webname,format)           #从A2纵向写入webname以format格式
worksheet.write_row(‘B2‘,data[0],format)           #从B2横向写入data[0]以foemat格式
worksheet.write_row(‘B3‘,data[1],format)
worksheet.write_row(‘B4‘,data[2],format)

def chart_series(cur_row):
    worksheet.write_formula(‘I‘+cur_row,‘=AVERAGE(B‘+cur_row+‘:H‘+cur_row+‘)‘,format_ave)
    
    chart.add_series({
        ‘categories‘: ‘=Sheet1!$B$1:$H$1‘,
        ‘values‘ : ‘=Sheet1!$B$‘+cur_row+‘:$H$‘+cur_row,
        ‘line‘ : {‘color‘ : ‘black‘},
        ‘name‘ : ‘Sheet1!$A$‘+cur_row,
    })



for row in range(2,5):
    chart_series(str(row))

chart.set_size({‘width‘ : 577,‘height‘ : 288})
chart.set_title({‘name‘ :‘某网站业务周报‘})
chart.set_y_axis({‘name‘ : ‘Mb/s‘})

worksheet.insert_chart(‘A10‘,chart)
workbook.close()

  

 最后记得关闭文件  


 小白笔记  如有错误请提醒修改!

sass学习笔记之入门篇

...提供多种功能来创建可维护和管理的样式表。以下是我的学习笔记。Sass安装环境1.安装sass(mac)①:Ruby安装②:安装sasssudogeminstallsass可以通过sass-v检测是否完成安装 2.更新sassgemu 查看详情

计算机基础学习笔记:操作系统篇之硬件结构,cpucache基础概念(代码片段)

三、CPUCache的数据结构和读取过程本文知识来源小林Coding阅读整理思考,原文链接请见该篇文章Cache结构CPUCache是由很多个CacheLine组成的,CacheLine是CPU从内存读取数据的基本单位,而CacheLine是由各种**标志(Tag)... 查看详情

计算机基础学习笔记:操作系统篇之硬件结构,存储层次结构(代码片段)

二、存储器的层次结构本文知识来源小林Coding阅读整理思考,原文链接请见该篇文章存储层次寄存器高速缓存,Cache1-3级内存磁盘(SSD,HDD)关键点各层次的存储的介质、速度、容量以及工作层次理解CPUCache的... 查看详情

学习sass笔记之概念篇

 1什么是CSS预处理器首先我们了解一下什么是CSS预处理器:通俗的说,“CSS预处理器用一种专门的编程语言,进行Web页面样式设计,然后再编译成正常的CSS文件,以供项目使用。CSS预处理器为CSS增加一些编程的特性,无需... 查看详情

计算机基础学习笔记:操作系统篇之硬件结构,cpu的基本工作原理(代码片段)

一、CPU的是如何运行程序的?本文知识来源小林Coding阅读整理思考,原文链接请见以下:https://xiaolincoding.com/os/1_hardware/how_cpu_run.html#图灵机的工作方式问题引入程序的执行过程?例如1+2的具体过程是怎么样的&#x... 查看详情

学习笔记之爬虫篇

网络爬虫(又被称为网页蜘蛛,网络机器人,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁,自动索引,模拟程序或者蠕虫。模块:scrapy req... 查看详情

性能测试之操作系统篇

...和参透各种性能问题,快速的找出性能的瓶颈。以下是我学习过程中的学习笔记,记录下我的理解过程,也欢迎大家纠正!第一篇:基础概念篇1. 操作系统中的系统调用、中断、上下文切换概念的含义系统调用在操作系统上... 查看详情

elk学习笔记之elasticsearchbulk操作:

Bulk操作: Bulk操作用于批量插入数据:请求体格式:编辑一个文件:(插入2个新的文档)curl-XPOST‘http://192.168.1.151:9200/library/books/_bulk‘--data-binary@requests用mget查询文档:已经成功插入。 查看详情

学习笔记之pyquery篇

什么是PyQuery?  这是一个强大又灵活的网页解析库。  如果你觉得写正则太麻烦,  如果你觉得BeautifulSoup语法太难记,  如果你熟悉jQuery,  那么,PyQuery将会成为你的最佳实践!#一个简单的例子from... 查看详情

小林coding阅读笔记:操作系统篇之硬件结构,中断问题(代码片段)

前言参考/导流:小林coding-2.6什么是软中断?学习意义学习CPU与外设如何去提升处理效率的设计思想,异步机制的理解与借鉴掌握相关的Linux命令,帮助问题排查相关说明该篇博文是个人阅读的重要梳理,仅做... 查看详情

docker学习笔记之网络篇

一、网络docker提供几种网络,它决定容器之间和外界和容器之间怎么样去相互通信。查看网络,我们可以执行:dockernetworkls650)this.width=650;"src="https://mmbiz.qpic.cn/mmbiz_png/rtibSseGoBickKAsUTQWT3LB0IwZbVvkGibnlicIY1MmQqItURJuib1coNqPzsmuE5ZMaFP9654 查看详情

esp32学习笔记之i2c总线

...系统。那么,这篇帖子我们就结合“LM75a”温度传感器来学习一下ESP32的IIC总线吧。首先我们通过esp32_technical_referance发现,esp32的I2C总线具有以下特性?支持主机模式以及从机模式?支持多主机多从机通信?支持标准模式(100kbit/s)?支... 查看详情

小林coding阅读笔记:操作系统篇之内核设计(代码片段)

前言参考/导流:小林coding-内核设计学习意义了解Linux和Windows主要OS的发展历程(背景)了解相关的设计架构、理念以及底层的基本工作原理相关说明该篇博文是个人阅读的重要梳理,仅做简单参考,详细请阅... 查看详情

学习笔记之邮件发送篇

用脚本语言发送邮件是系统管理员必备技能 对系统定期检查或者当服务器受到攻击时生成文档和报表。 发布这些文档最快速有效的方法就是发送邮件。  python中email模块使得处理邮件变得比较简单   &nbs... 查看详情

学习笔记之csrf初级篇

什么是CSRFCSRF(Cross-siterequestforgery跨站请求伪造,也被称为“oneclickattack”或者sessionriding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用... 查看详情

学习笔记之csrf初级篇

什么是CSRFCSRF(Cross-siterequestforgery跨站请求伪造,也被称为“oneclickattack”或者sessionriding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用... 查看详情

学习笔记之csrf初级篇

什么是CSRFCSRF(Cross-siterequestforgery跨站请求伪造,也被称为“oneclickattack”或者sessionriding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用... 查看详情

学习笔记之csrf初级篇

什么是CSRFCSRF(Cross-siterequestforgery跨站请求伪造,也被称为“oneclickattack”或者sessionriding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用... 查看详情