-
2020-11-23 21:34:59
想问下python3怎么将列表数据逐行写入excel表格呢?
import xlwtf = xlwt.Workbook() #工作薄sheet1 = f.add_sheet(u'sheet1',cell_overwrite_ok=True) #创建sheetlist = [1,2,3,4,5]j = 0for i in list:sheet1.write(j,0,i) #写入
python 怎么提取匹配条件信息生成excel表 如a.txt...
import xlwt
f = xlwt.Workbook() #创建工
sheet1 = f.add_sheet(u'sheet1',cell_overwrite_ok=True) #创建sheet
l_=[1,2,3,4,5]
for i in range(len(l_)):
sheet1.write(0,i,i)#表格一行开始写。第一列二列。。。。
#sheet1.write(0,0,start_date,set_style('Times New Roman',220,True))
f.save('text.xls')#保存文
python怎么把数组数据写入表格文档?举个例子就行
import xlwt
f = xlwt.Workbook() #创建工
sheet1 = f.add_sheet(u'sheet1',cell_overwrite_ok=True) #创建sheet
list = [1,2,3,4,5]
j = 0
for i in list:
sheet1.write(j,0,i) #写入 竖
j=j 1
f.save('text.xls')#保件
Python如何将一个列表写入到一个excel表中的一列,...
简单的介绍一下这库,先说xlrd,这个库读Excel比较,各种方法使用起来也挺方便
bk = xlrd.open_workbook('your.xls')
sh = bk.sheets()[-1]
上面两句就可以打开Excel表的一个sheet,sheets得到的是一个list,存放所有的sheet。
sh.nrows是该sheet中的行数,知道这个后就可以使用for循环来读所有的单元格了:
sh.row(i)[3]这个就代表第i行的第4列。
再看看pyExcelerator,这个用起来有点别扭:
sheets = parse_xls('result.xls')
先打开一个表格,sheets是一个list,包含了所有表格的内容,每一项就是一个sheet,而每个sheet是二元tuple,第一个是该sheet的名字,第二个是一个dict,dict的key是一个二元组,表示单元格的坐标,如(0,0),第一行第一列。
从上面的分析中可以得出要访问Excel中第一个sheet的第一行第一列元素需要:
sheets[0][1][(0,0)]
pyExcelerator也不能得到行列数。
写文件也比较简单:
wb = Workbook()
ws = wb.add_sheet('result')
ws.write(0,0,“hello”)
wb.save('result.xls')
就不解释了:-)
写文件时需要注意直接写Unicode内容进去,而不要写编码过的内容。
本文来源于可可熊的窝 http://cocobear.info/blog , 原文地址:
用python生成在html中显示的表格
可以安装xlsxwriter库
看:
import xlsxwriter
# 创建新表格
workbook = xlsxwriter.Workbook('test.xlsx')
worksheet = workbook.add_worksheet()
# 表格的内
expenses = (
['Rent', 1000],
['Gas', 100],
['Food', 300],
['Gym', 50],
)
# 想象表格的布局, 0,0 对应 A,1
row = 0
col = 0
# 填个单元格
for item, cost in (expenses):
worksheet.write(row, col, item)
worksheet.write(row, col 1, cost)
row = 1
workbook.close()
更多相关内容 -
Python读取Excel数据并生成图表过程解析
2020-09-16 15:53:49主要介绍了Python读取Excel数据并生成图表过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 -
使用python生成Excel表格
2021-12-14 10:18:23安装xlsxwriter库 pip install xlsxwriter #设置表格名称 workbook = xlsxwriter.Workbook('hello.xlsx') #增加一个sheet worksheet = workbook.add_worksheet() # 设置表头 headings = ['Number', 'testA', 'testB'...安装xlsxwriter库
pip install xlsxwriter
#设置表格名称 workbook = xlsxwriter.Workbook('hello.xlsx') #增加一个sheet worksheet = workbook.add_worksheet() # 设置表头 headings = ['Number', 'testA', 'testB'] #数据 data = [ ['2017-9-1', '2017-90-2', '2017-9-3', '2017-9-4', '2017-9-5', '2017-9-6'], [10, 40, 50, 20, 10, 50], [30, 60, 70, 50, 40, 30] ] #整行写入 worksheet.write_row('A1', headings) #整列写入 worksheet.write_column('A2', data[0]) worksheet.write_column('B2', data[1]) worksheet.write_column('C2', data[2]) workbook.close()
-
Python将Excel中数据批量导出到Word模板中生成新的文件
2019-08-07 22:45:55windows下,使用python 将Excel中数据批量导出到Word模板中生成新的文件 -
Python实现导出数据生成excel报表的方法示例
2020-12-25 05:42:35本文实例讲述了Python实现导出数据生成excel报表的方法。分享给大家供大家参考,具体如下: #_*_coding:utf-8_*_ import MySQLdb import xlwt from datetime import datetime def get_data(sql): # 创建数据库连接... -
使用Python根据excel中数据批量生成word文件,解决单选框问题
2020-10-19 15:36:12使用Python根据excel中数据批量生成word文件,解决单选框问题。给网友提问的答复。 见 https://blog.csdn.net/zw010101/article/details/106111382 -
python xlwings 操作统计excel表格,生成新excel表格
2021-01-21 16:28:40因产品的同学试着用python统计Excel表格,但百度的程序又一直有各种问题, 所以叫我帮用python实现一个统计Excel表格程序;我之前也没有写过python操作Excel表格的程序,快速搜索实现了一下,还是发现一些问题,... -
python读取excel数据绘制简单曲线图的完整步骤记录
2020-12-16 19:55:12python读写excel文件有很多种方法: 用xlrd和xlwt进行excel读写 用openpyxl进行excel读写 用pandas进行excel读写 本文使用xlrd读取excel文件(xls,sxls格式),使用xlwt向excel写入数据 一、xlrd和xlwt的安装 安装... -
用Python生成HTML表格的方法示例
2020-12-20 12:46:36使用 Python 生成 HTML 表格基本没啥难度, for 循环遍历一遍数据并输出标签即可。 如果需要实现合并单元格,或者按需调整表格样式,就比较麻烦了。 这时,可以试试本文的主角 —— html-table 包,借助它可... -
python读取excel表格生成erlang数据
2020-12-24 17:21:46为了将excel数据自动转换成所需要的erlang数据,听同事说使用python会很方便简单,就自学了两天python,写了一个比较粗糙的python脚本,不过能用,有什么优化的地方请指教 代码如下: #!/usr/bin/env python # -*- ... -
python读取excel指定列数据并写入到新的excel方法
2020-12-23 14:11:00#------------------读数据--------------------------------- fileName="C:\\Users\\st\\Desktop\\test\\20170221131701.xlsx" bk=xlrd.open_workbook(fileName) shxrange=range(bk.nsheets) try: sh=bk.sheet_by_... -
利用python对Excel中的特定数据提取并写入新表的方法
2020-09-20 09:33:23今天小编就为大家分享一篇利用python对Excel中的特定数据提取并写入新表的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
用Python自动生成Excel数据报表!
2021-04-15 00:17:10来源:法纳斯特大家好,我是阳哥。之前阳哥分享了不少用 Python 操作 excel 的内容。今天继续来分享一篇,使用Python自动化生成数据报表!从一条条的数据中,创建出一张数据报表,...来源:法纳斯特
大家好,我是阳哥。之前阳哥分享了不少用 Python 操作 excel 的内容。
今天继续来分享一篇,使用Python自动化生成数据报表!
从一条条的数据中,创建出一张数据报表,得出你想要的东西,提高效率。
主要使用到pandas、xlwings以及matplotlib这几个库。
先来看一下动态的GIF,都是程序自动生成。
下面我们就来看看这个案例吧,水果蔬菜销售报表。
原始数据如下,主要有水果蔬菜名称、销售日期、销售数量、平均价格、平均成本、总收入、总成本、总利润等。
先导入相关库,使用pandas读取原始数据。
import pandas as pd import xlwings as xw import matplotlib.pyplot as plt # 对齐数据 pd.set_option('display.unicode.ambiguous_as_wide', True) pd.set_option('display.unicode.east_asian_width', True) # 读取数据 df = pd.read_csv(r"fruit_and_veg_sales.csv") print(df)
结果如下。
一共是有1000行的销售数据。
使用xlwings库创建一个Excel工作簿,在工作簿中创建一个表,表名为fruit_and_veg_sales,然后将原始数据复制进去。
# 创建原始数据表并复制数据 wb = xw.Book() sht = wb.sheets["Sheet1"] sht.name = "fruit_and_veg_sales" sht.range("A1").options(index=False).value = d
关于xlwings库的使用,小F推荐两个文档地址
中文版:
https://www.kancloud.cn/gnefnuy/xlwings-docs/1127455
英文版:
https://docs.xlwings.org/en/stable/index.html
推荐使用中文版,可以降低学习难度...
当然关于Excel的VBA操作,也可以看看微软的文档。
地址:
https://docs.microsoft.com/zh-cn/office/vba/api/overview/excel
将原始数据取过来后,再在工作簿中创建一个可视化表,即Dashboard表。
# 创建表 wb.sheets.add('Dashboard') sht_dashboard = wb.sheets('Dashboard')
现在,我们有了一个包含两个工作表的Excel工作簿。fruit_and_veg_sales表有我们的数据,Dashboard表则是空白的。
下面使用pandas来处理数据,生成Dashboard表的数据信息。
DashBoard表的头两个表格,一个是产品的利润表格,一个是产品的销售数量表格。
使用到了pandas的数据透视表函数。
# 总利润透视表 pv_total_profit = pd.pivot_table(df, index='类别', values='总利润(美元)', aggfunc='sum') print(pv_total_profit) # 销售数量透视表 pv_quantity_sold = pd.pivot_table(df, index='类别', values='销售数量', aggfunc='sum') print(pv_quantity_sold)
得到数据如下。
稍后会将数据放置到Excel的表中去。
下面对月份进行分组汇总,得出每个月的销售情况。
# 查看每列的数据类型 print(df.dtypes) df["销售日期"] = pd.to_datetime(df["销售日期"]) # 每日的数据情况 gb_date_sold = df.groupby(df["销售日期"].dt.to_period('m')).sum()[["销售数量", '总收入(美元)', '总成本(美元)', "总利润(美元)"]] gb_date_sold.index = gb_date_sold.index.to_series().astype(str) print(gb_date_sold)
得到结果如下。
这里先对数据进行了查询,发现日期列为object,是不能进行分组汇总的。
所以使用了pd.to_datetime()对其进行了格式转换,而后根据时间进行分组汇总,得到每个月的数据情况。
最后一个groupby将为Dashboard表提供第四个数据信息。
# 总收入前8的日期数据 gb_top_revenue = (df.groupby(df["销售日期"]) .sum() .sort_values('总收入(美元)', ascending=False) .head(8) )[["销售数量", '总收入(美元)', '总成本(美元)', "总利润(美元)"]] print(gb_top_revenue)
总收入前8的日期,得到结果如下。
现在我们有了4份数据,可以将其附加到Excel中。
# 设置背景颜色, 从A1单元格到Z1000单元格的矩形区域 sht_dashboard.range('A1:Z1000').color = (198, 224, 180) # A、B列的列宽 sht_dashboard.range('A:B').column_width = 2.22 print(sht_dashboard.range('B2').api.font_object.properties.get()) # B2单元格, 文字内容、字体、字号、粗体、颜色、行高(主标题) sht_dashboard.range('B2').value = '销售数据报表' sht_dashboard.range('B2').api.font_object.name.set('黑体') sht_dashboard.range('B2').api.font_object.font_size.set(48) sht_dashboard.range('B2').api.font_object.bold.set(True) sht_dashboard.range('B2').api.font_object.color.set([0, 0, 0]) sht_dashboard.range('B2').row_height = 61.2 # B2单元格到W2单元格的矩形区域, 下边框的粗细及颜色 sht_dashboard.range('B2:W2').api.get_border(which_border=9).weight.set(4) sht_dashboard.range('B2:W2').api.get_border(which_border=9).color.set([0, 176, 80]) # 不同产品总的收益情况图表名称、字体、字号、粗体、颜色(副标题) sht_dashboard.range('M2').value = '每种产品的收益情况' sht_dashboard.range('M2').api.font_object.name.set('黑体') sht_dashboard.range('M2').api.font_object.font_size.set(20) sht_dashboard.range('M2').api.font_object.bold.set(True) sht_dashboard.range('M2').api.font_object.color.set([0, 0, 0]) # 主标题和副标题的分割线, 粗细、颜色、线型 sht_dashboard.range('L2').api.get_border(which_border=7).weight.set(3) sht_dashboard.range('L2').api.get_border(which_border=7).color.set([0, 176, 80]) sht_dashboard.range('L2').api.get_border(which_border=7).line_style.set(-4115)
先配置一些基本内容,比如文字,颜色背景,边框线等,如下图。
使用函数,批量生成四个表格的格式。
# 表格生成函数. def create_formatted_summary(header_cell, title, df_summary, color): """ Parameters ---------- header_cell : Str 左上角单元格位置, 放置数据 title : Str 当前表格的标题 df_summary : DataFrame 表格的数据 color : Str 表格填充色 """ # 可选择的表格填充色 colors = {"purple": [(112, 48, 160), (161, 98, 208)], "blue": [(0, 112, 192), (155, 194, 230)], "green": [(0, 176, 80), (169, 208, 142)], "yellow": [(255, 192, 0), (255, 217, 102)]} # 设置表格标题的列宽 sht_dashboard.range(header_cell).column_width = 1.5 # 获取单元格的行列数 row, col = sht_dashboard.range(header_cell).row, sht_dashboard.range(header_cell).column # 设置表格的标题及相关信息, 如:字号、行高、向左居中对齐、颜色、粗体、表格的背景颜色等 summary_title_range = sht_dashboard.range((row, col)) summary_title_range.value = title summary_title_range.api.font_object.font_size.set(14) summary_title_range.row_height = 32.5 # 垂直对齐方式 summary_title_range.api.verticalalignment = xw.constants.HAlign.xlHAlignCenter summary_title_range.api.font_object.color.set([255, 255, 255]) summary_title_range.api.font_object.bold.set(True) sht_dashboard.range((row, col), (row, col + len(df_summary.columns) + 1)).color = colors[color][0] # Darker color # 设置表格内容、起始单元格、数据填充、字体大小、粗体、颜色填充 summary_header_range = sht_dashboard.range((row + 1, col + 1)) summary_header_range.value = df_summary summary_header_range = summary_header_range.expand('right') summary_header_range.api.font_object.font_size.set(11) summary_header_range.api.font_object.bold.set(True) sht_dashboard.range((row + 1, col), (row + 1, col + len(df_summary.columns) + 1)).color = colors[color][1] # Darker color sht_dashboard.range((row + 1, col + 1), (row + len(df_summary), col + len(df_summary.columns) + 1)).autofit() for num in range(1, len(df_summary) + 2, 2): sht_dashboard.range((row + num, col), (row + num, col + len(df_summary.columns) + 1)).color = colors[color][1] # 找到表格的最后一行 last_row = sht_dashboard.range((row + 1, col + 1)).expand('down').last_cell.row side_border_range = sht_dashboard.range((row + 1, col), (last_row, col)) # 给表格左边添加带颜色的边框 side_border_range.api.get_border(which_border=7).weight.set(3) side_border_range.api.get_border(which_border=7).color.set(colors[color][1]) side_border_range.api.get_border(which_border=7).line_style.set(-4115) # 生成4个表格 create_formatted_summary('B5', '每种产品的收益情况', pv_total_profit, 'green') create_formatted_summary('B17', '每种产品的售出情况', pv_quantity_sold, 'purple') create_formatted_summary('F17', '每月的销售情况', gb_date_sold, 'blue') create_formatted_summary('F5', '每日总收入排名Top8 ', gb_top_revenue, 'yellow')
得到结果如下。
可以看到,一行行的数据经过Python的处理,变为一目了然的表格。
最后再绘制一个matplotlib图表,添加一张logo图片,并保存Excel文件。
# 中文显示 plt.rcParams['font.sans-serif']=['Songti SC'] # 使用Matplotlib绘制可视化图表, 饼图 fig, ax = plt.subplots(figsize=(6, 3)) pv_total_profit.plot(color='g', kind='bar', ax=ax) # 添加图表到Excel sht_dashboard.pictures.add(fig, name='ItemsChart', left=sht_dashboard.range("M5").left, top=sht_dashboard.range("M5").top, update=True) # 添加logo到Excel logo = sht_dashboard.pictures.add(image="pie_logo.png", name='PC_3', left=sht_dashboard.range("J2").left, top=sht_dashboard.range("J2").top+5, update=True) # 设置logo的大小 logo.width = 54 logo.height = 54 # 保存Excel文件 wb.save(rf"水果蔬菜销售报表.xlsx")
此处需设置一下中文显示,否则会显示不了中文,只有一个个方框。
得到最终的水果蔬菜销售报表。
本文的示例代码,可以在Mac+Excel2016中运行的,与Windows还是会有一些区别,API函数的调用(pywin32 or appscript)。
比如表格文字的字体设置。
# Windows sht_dashboard.range('B2').api.font.name = '黑体' # Mac sht_dashboard.range('B2').api.font_object.name.set('黑体')
对于Windows版本的,也提供了相关的程序文件,在点击下面卡片,回复「excel报表」,即可获取代码及相关数据。
-
python生成带有表格的图片实例
2021-01-01 01:56:48因为工作中需要,需要生成一个带表格的图片 例如: ...后来考虑使用Python的图片处理库Pillow,和生成表格式的库prattytable,下面的图片是最终生成的图片效果 总体来说是分为两个步骤: 使用prat -
Python解析Excel表格,生成sql语句,写入本地文件
2020-10-09 16:55:43由于工作中需要写精算,给的一个Excel中,有大量数据需要写入数据库,一个个写,不知要到何年何月,于是使用Python,利用xlrd模块,解析Excel,将其中需要的数据生成想要的sql语句,根据sql语句插入到数据库,后续会... -
python使用xlwt生成Excel表格
2020-12-04 15:03:04在工作中,遇到了使用python生成Excel表格的需求,经过资料的查找与对比,决定使用第三方库xlwt来生成Excel表格,现做如下总结:简单例子:import xlwtwb = xlwt.Workbook(encoding = 'ascii') #创建实例,并且规定...在工作中,遇到了使用python生成Excel表格的需求,经过资料的查找与对比,决定使用第三方库xlwt来生成Excel表格,现做如下总结:
简单例子:
import xlwt
wb = xlwt.Workbook(encoding = 'ascii') #创建实例,并且规定编码
ws = wb.add_sheet('My Worksheet') #设置工作表名称
ws.write(0,0,'first') #向表格中插入字符串,前两位数字分别为行和列,第三个参数为要插入的内容,第四个参数可以设置样式
wb.save('test.xls') #将生成的表格保存为
单元格样式控制:
def set_style(name, height, bold=False, back=False): #样式控制函数
style = xlwt.XFStyle() # 初始化样式
font = xlwt.Font() # 为样式创建字体
font.name = name # 字体由函数传入
font.bold = bold
font.color_index = 4
font.height = height
style.font = font
borders = xlwt.Borders() # 设置边框
borders.left = xlwt.Borders.THIN # 可选: NO_LINE, THIN, MEDIUM, DASHED, DOTTED, THICK, DOUBLE, HAIR, MEDIUM_DASHED, THIN_DASH_DOTTED, MEDIUM_DASH_DOTTED, THIN_DASH_DOT_DOTTED, MEDIUM_DASH_DOT_DOTTED, SLANTED_MEDIUM_DASH_DOTTED, or 0x00 through 0x0D.
borders.right = xlwt.Borders.THIN
borders.top = xlwt.Borders.THIN
borders.bottom = xlwt.Borders.THIN
style.borders = borders
if back:
patterni = xlwt.Pattern() # 为样式创建图案
patterni.pattern = 2 # 设置底纹的图案索引,1为实心,2为50%灰色,对应为excel文件单元格格式中填充中的图案样式
patterni.pattern_fore_colour = 0x16 # 设置底纹的前景色,对应为excel文件单元格格式中填充中的背景色
patterni.pattern_back_colour = 0x16 # 设置底纹的背景色,对应为excel文件单元格格式中填充中的图案颜色
style.pattern = patterni # 为样式设置图案
return style
背景色对照:
_colour_map_text = """\
aqua 0x31
black 0x08
blue 0x0C
blue_gray 0x36
bright_green 0x0B
brown 0x3C
coral 0x1D
cyan_ega 0x0F
dark_blue 0x12
dark_blue_ega 0x12
dark_green 0x3A
dark_green_ega 0x11
dark_purple 0x1C
dark_red 0x10
dark_red_ega 0x10
dark_teal 0x38
dark_yellow 0x13
gold 0x33
gray_ega 0x17
gray25 0x16
gray40 0x37
gray50 0x17
gray80 0x3F
green 0x11
ice_blue 0x1F
indigo 0x3E
ivory 0x1A
lavender 0x2E
light_blue 0x30
light_green 0x2A
light_orange 0x34
light_turquoise 0x29
light_yellow 0x2B
lime 0x32
magenta_ega 0x0E
ocean_blue 0x1E
olive_ega 0x13
olive_green 0x3B
orange 0x35
pale_blue 0x2C
periwinkle 0x18
pink 0x0E
plum 0x3D
purple_ega 0x14
red 0x0A
rose 0x2D
sea_green 0x39
silver_ega 0x16
sky_blue 0x28
tan 0x2F
teal 0x15
teal_ega 0x15
turquoise 0x0F
violet 0x14
white 0x09
yellow 0x0D"""
-
python 读取excel表格数据,然后写入word模板,批量生成
2021-06-02 23:00:11前几天,我姐遇见了一个难题:需要从excel表格中不断复制数据到word模板中,相当繁琐,询问我有没有解决的办法。于是我百度了一下,借鉴了相关博主的博文,结合自己的需求,最终解决了该问题。特在此记录一下。 问题... -
python生成excel文件并写入内容
2020-04-20 10:00:01使用xlwt模块写入excel内容 -
python对Excel表格数据进行读取和写入
2022-04-20 11:23:131.3提起Excel表格中指定列数据; 1.4定向筛选所需数据; 1.5多表数据统计排行; 1.6多表数据合并新excel文件。 2.系统开发环境准确: Anaconda3,在conda 中,window和ubuntu中的python功能一样。 pycharm。 3... -
python生成自定义格式的excel文档
2018-10-08 16:23:53此代码详细描述如何使用openpyxl将数据库中数据导出成自定义格式的excel文档。openpyxl处理excel的格式,由于xlwt只能识别xls文件,并且xls文件的格式更改有限制字节,因此需要采用更高版本的xlsx文件,对应的方法用... -
Python获取数据库数据并保存在excel表格中的方法
2020-12-26 03:56:07将数据库中的数据保存在excel文件中有很多种方法,这里主要介绍pyExcelerator的使用。 一、前期准备(不详细介绍MySQL) python包pyExcelerator和MySQLdb 导入方法:(以Pycharm为例) 在File->Settings中点击右上角... -
Python 把excel表格的格式转换成*.csv格式文件
2020-01-07 17:41:06安装的是Python32bit的工具;把excel表格格式转换成*.csv格式文件;若想删除生成的文件,只需把最后一句放开即可。注:并没有把格式也转换过去。 -
Python生成excel表格并设置样式
2020-06-11 18:00:43python在做爬虫时会涉及到数据存储问题,下面说一下将数据存储在excel表格中,主要使用扩展类xlwt,下面详细说一下,主要涉及到了数据列,背景,名称等参数。 说明:python3.7、window环境 一、类库安装 pip install... -
python生成excel表格以及饼图 示例源码
2020-12-02 14:09:26【实例简介】【实例截图】【核心代码】# -*- coding: utf-8 -*-from openpyxl import load_workbookfrom openpyxl import Workbookfrom openpyxl.chart import (PieChart , ProjectedPieChart, Reference)from ... -
python list格式数据excel导出方法
2020-12-24 06:28:08如下所示: # _*_ coding:utf-8 _*_ #----------------------------------------------- # import modules #----------------------------------------------- import os import xlwt import sys ... -
python实现查找excel里某一列重复数据并且剔除后打印的方法
2020-09-22 00:33:34主要介绍了python实现查找excel里某一列重复数据并且剔除后打印的方法,涉及Python使用xlrd模块操作Excel的相关技巧,需要的朋友可以参考下