Python操作Excel实现自动化报表

作者&投稿:殷勤武 (若有异议请与网页底部的电邮联系)
~

Python操作Excel实现自动化报表

安装

python -m pip install xlrd xlwt xlutils。

基本用法

1.从指定文件路径读取excel表格,进行一定操作,然后保存到另一个excel文件:result.xlsx

import xlwt
import xlrd
from xlutils.copy import copy
import pandas as pd
from pandas import DataFrame,Series
import os
os.chdir('./')
# 从指定文件路径读取excel表格
df = pd.read_excel('D:/mypaper/data/data.xlsx')
# 查看df内容


# 根据age算出出生年份,增加一列
import datetime
import os
year = datetime.datetime.now().year#获取当前系统时间对应的年份
df['birth'] = year-df['age']
df.to_excel('result.xlsx')#保存到当前工作目录,可以用os.getcwd()查看
#查看下此时df的内容,可以看到已经生成了birth这一列。


2.单元格操作

# 定义方法:读取指定目录下Excel文件某个sheet单元格的值
def excel_read(file_path,table,x,y):
     data = xlrd.open_workbook(file_path)
     table = data.sheet_by_name(table)
     return table.cell(y,x).value

# 定义方法:单元格值及样式
write_obj_list = []
def concat_obj(cols,rows,value):
    write_obj_list.append({'cols':cols,'rows':rows,'value':value,\
'style':xlwt.easyxf('font: name 宋体,height 280;alignment: horiz centre')})

# 定义方法:合并单元格
def merge_unit(srows,erows,scols,ecols,value):
    write_obj_list.append({'id':'merge','srows':srows,'erows':erows,'scols':scols,\
'ecols':ecols,'value':value,'style':xlwt.easyxf('font: name 宋体,height 280;alignment: horiz centre')})

# 定义方法:更新excel
excel_update(file_path,write_obj_list,new_path):
    old_excel = xlrd.open_workbook(file_path, formatting_info=True)
    #管道作用
    new_excel = copy(old_excel)
    '''
    通过get_sheet()获取的sheet有write()方法
    '''
    sheet1 = new_excel.get_sheet(0)
    '''
    1代表是修改第几个工作表里,从0开始算是第一个。此处修改第一个工作表
    '''
    for item in write_obj_list:
        if 'id' not in item.keys():
            if 'style' in item.keys():
                sheet1.write(item['rows'], item['cols'], item['value'],item['style'])
            else:
                sheet1.write(item['rows'], item['cols'], item['value'])
        else:
            if 'style' in item.keys():
                sheet1.write_merge(item['srows'],item['erows'],item['scols'], item['ecols'], item['value'],item['style'])
            else:
                sheet1.write_merge(item['srows'],item['erows'],item['scols'], item['ecols'], item['value'])
    '''
   如果报错 dict_items has no attributes sort
    把syle源码中--alist.sort() 修改为----> sorted(alist) 
    一共修改2次
    '''
    new_excel.save(file_path)

#参数详解
# srows:合并的起始行数
# erows:合并的结束行数
# scols:合并的起始列数
# ecols:合并的结束列数 
# value:合并单元格后的填充值
# style:合并后填充风格:
#     font: name 宋体
#     height 280;
#     alignment: horiz centre
#     ... 与excel操作基本保持一致

(注意:该方法仅仅是将需要直行的动作保存到一个list中,真正的动作还未执行,执行动作是发生在excel_update方法中)

最终调用excel_update方法,传入每个单元格需要进行的操作和填充值的write_obj_list以及文件保存路径file_path,就可以在当前工作目录下生成想要的Excel结果文件。


注意:
1.write_obj_list支持用户自定义
2.write_obj_list也可以是根据excel_read方法读取现有待修改的excel文件(可以维持原有表格的格式)而生成

End




怎样用python,读取excel中的一列数据
用python读取excel中的一列数据步骤如下:1、首先打开dos命令窗,安装必须的两个库,命令是:pip3 install xlrd;Pip3 install xlwt。2、准备好excel。3、打开pycharm,新建一个excel.py的文件,首先导入支持库import xlrdimport xlwt。4、要操作excel,首先得打开excel,使用open_workbook(‘路径’),...

python怎么读写当前的excel
python有很强大的excel读写能力,只需要安装xlrd,xlwt这两个库就可以了 pip install xlrdPip install xlwt看教程,在右边的链接:网页链接 ecoding=utf-8import sysreload(sys)sys.setdefaultencoding('utf-8')from pyExcelerator import *w = Workbook() #创建一个工作簿ws = w.add_sheet('1')...

处理excel,选择vba还是python?
于是乎,关于处理excel,该选择VBA还是python的问题,开始充斥互联网界。毕竟,个人的学习能力有限,想要同时掌握VBA和python还是有一定难度的。就算是excel,很多人都只敢说会使用,不敢说精通。虽然VBA作为程序的自动化脚本而存在,是为了提高程序的自动化程度。可是,操作起来,那就事与愿违了。比如,自...

python与vba处理excel哪个效率高?
当数据不拆分电脑配置又不高,就会显得比较卡,数据处理完毕后,不释放下内存电脑用起来也会比较卡,vba一般只会启动2个cpu核心进行数据计算,运算效率也比较低,现在微软已经停止对vba的更新,更建议学习Python,如果只是操作excel,这两个学习难度差别不大,但是Python发展空间会更好。

python能做什么
1、做日常任务,比如下载视频、MP3、自动化操作excel、自动发邮件。2、做网站开发、web应用开发,很多著名的网站像知乎、YouTube就是Python写的。许多大型网站就是用Python开发的,例如YouTube、Instagram,还有国内的豆瓣。很多大公司,包括Google、Yahoo等,甚至NASA(美国航空航天局)都大量地使用Python。3...

python 如何读取 excel 指定单元格内容
1、首先打开电脑上编写python的软件。2、然后新建一个py文件,如下图所示。3、接着就是导入xlrd包,读取表格的函数就在这里面,如下图所示。4、然后就是打开想要读取的表格,如下图所示。5、接着就是指定要读取一个excel表中的那个表格。6、然后就是根据sheet索引获取sheet内容。7、最后就是读取一个...

Python中的Excel文件的写入操作
详细介绍Python中Excel文件的写入操作

用python怎么实现多个excel自动两列位置对调?
import pandas as pdimport os# 指定一个 Excel 文件夹目录path = 'E:\/下载\/文件夹的名称\/'# 遍历文件夹获取所有符合条件的 Excel 文件完整目录for root, dirs, files in os.walk(path):# 遍历文件for file in files:# 如果有不需要操作的文件另外添加判断条件即可# 拼接完整目录filePath = ...

用python将两个excel文件中的所有工作表复制到一个新的excel?
导入 openpyxl 库 import openpyxl 创建一个新的 Excel 文件 wb = openpyxl.Workbook()读取第一个 Excel 文件 wb1 = openpyxl.load_workbook("file1.xlsx")遍历第一个 Excel 文件中的每个工作表 for sheet in wb1.worksheets:复制该工作表到新的 Excel 文件中 wb.create_sheet(title=sheet.title,...

Python怎么将excel表格转换成列表?
可以使用 Python 的第三方库 pandas 将列表转换成 excel 表格。首先需要安装 pandas 库,在命令行中输入:pip install pandas 然后可以使用 pandas 库中的 DataFrame 函数将列表转换成 DataFrame 数据结构,再使用 to_excel 函数将 DataFrame 保存为 excel 文件。示例代码:import pandas as pd 假设你有...

枣阳市13075102725: python xlwt excel自动换行 -
崇娟纤溶: 1、可以用for循环来做,循环之前设定一个i=0,就是第i行,循环结束的时候i+=12、如果是一个单元格里面的内容太长需要换行,这个就要设定单元格的样式了,跟你直接操作excel时候差不多,设定必要的样式就可以了

枣阳市13075102725: 怎样在Excel中使用python脚本 -
崇娟纤溶: 怎么在Excel中运行python脚本?这个问题由来已久,很多pythoner都希望直接用python控制Excel,但是只能从外部调用,有没有一个VBA的东西可以直接在Excel中运行呢?答案是有,DataNitro就是这么一个东西,看看下面Excel中的界面,他...

枣阳市13075102725: python 怎么操作excel -
崇娟纤溶: 相关知识如下:1. Python操作excel要使用的库是:xlrd,xlwt;2. 操作步骤是:引用库文件,打开文件,获取表单,进行读写;3. 示例如下:# -*- coding: utf-8 -*- import xdrlib ,sys import xlrd def open_excel(file= 'file.xls'): try: data = xlrd.open_...

枣阳市13075102725: python对Excel中数据的处理 -
崇娟纤溶: 下面就详细的讲述整个实现过程. 1、在计算机上安装python(x,y)2.6.6版本.这一步是确保机器上的python开发环境,具体的安装过程在此就不在赘述,网上相关资料比较多 2、建议安装一个Notepad++,这样写代码比较方便

枣阳市13075102725: 如何利用python对excel文件处理 -
崇娟纤溶: python处理excel文件主要是第三方模块库xlrd、xlwt、xluntils和pyExcelerator,除此之外,还可以用win32com和openpyxl模块

枣阳市13075102725: 如何用python把多个excel文件自动合并到一个文件中 -
崇娟纤溶: 工作中经常用到Excel,很多事情都重复处理,比如每天的日报,每周的周报,各种数据表,这种固定的表其实都是重复性的劳动.最近这段时间一直在学python,但是断断续续的,眼高手低,看别人的代码看的很懂,但是自己就是写不出来,...

枣阳市13075102725: 有哪些方法可以在excel中直接使用python脚本? -
崇娟纤溶: 在excel中直接使用python脚本可以使用vba触发,具体做法如下: 1、创建python脚本如下:import time def hello(name): return "Hello, " + name + "!" print hello("World") #延时关闭windows控制台,使得用户可以看到运行结果 time.sleep(150); 2、在excel中打开vba编辑器,编写触发入口: 3、运行宏,效果如下: Hello, World

枣阳市13075102725: python有哪些好用的操作excel的模块 -
崇娟纤溶: xlrd,xlwt和xlutils是用Python处理Excel文档的库. 其中,xlrd只能读取xls,xlwt只能新建写xls(不可以修改),xlutils在xlrd和xlwt之间建立一个通道,可以实现xls的修改.

枣阳市13075102725: 如何用python读取excel -
崇娟纤溶: 用python对excel的读写操作,要用到两个库:xlrd和xlwt,首先下载安装这两个库.1、#读取Excel import xlrd data = xlrd.open_workbook(excelFile) table = data.sheets()[0] nrows = table.nrows #行数 ncols = table.ncols #列数 for i in ...

枣阳市13075102725: 如何用python读excel文件 -
崇娟纤溶: 想要使用python实现对Excel文件的读写,首先需要安装专用的模块(如果你是大牛可以自己编写)xlrd模块.解压以后启动cmd命令窗口,在其中输入xlrd解压后所在的目录,执行安装命令如图所示(cmd命令的使用请自行百度,本机已经配置好...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网