返回顶部
首页 > 资讯 > 后端开发 > Python >Python: 读写Excel(open
  • 794
分享到

Python: 读写Excel(open

PythonExcelopen 2023-01-31 00:01:10 794人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

项目周报汇报的时候要做数据汇总,总是要从不同的excel文件中去获取数据最后汇总到一个excel表里面,所以决定用python直接写个自动化脚本来自动执行。 用Python来读写excel,目前找了2个方法:win32com.client

项目周报汇报的时候要做数据汇总,总是要从不同的excel文件中去获取数据最后汇总到一个excel表里面,所以决定用python直接写个自动化脚本来自动执行。

Python来读写excel,目前找了2个方法:win32com.client和openpyxl

  • win32com.client可以对excel进行各种操作,可以调用VBA的库,相当于是模拟用户对excel进行操作,在执行过程中,你可以看到excel被打开,然后数据被写入,最后excel文件被关闭等等过程。(文档也可以参看OFFICE自带的VBA EXCEL 帮助文件(VBAXL.CHM)。这里面讲述了EXCEL VBA的编程概念, 另外,《Python Programming on Win32》书中也有很详细的介绍。这本书中(第九章)给出了一个类来操作EXCEL 文件,可以很容易的加以扩展。)
  • openpyxl是处理excel2007/2010及以后的格式,也就是xlsx系列,如果要处理以前的2003的表格(xls),那么则要用另外的库(xlrd/xlwt等)。

python虽然并不是特别在意大小写,但是使用win32com.client一定要注意大小写,很多函数如果不区分大小写,是无法调用的,比如打开excel表格的Open函数,’O’必须大写,还有wb.Save(),‘S’也必须大写,而我们使用openpyxl使用小写即可。

openpyxl在保存时用save(),很多原有的格式图表是无法保留下来的,比如对excel进行修改,里边原有的透视表,用openpyxl的save()是无法保存的,但是使用win32com.client的wb.Save()却是可以保存这些图表的,这也是更加方便的地方。

这里简单分享项目中用到这2个模版的写数据方式:

  • 首先已经把数据都存到字典中:

dict_data = {'ThinkPad_Users': 448177, 'ideaPad_Users': 109626, 'Desktop_Users': 50605, 'Install_ThinkPad': 903036, 'Install_IdeaPad': 197467, 'Install_Desktop': 91656, 'ThinkPad_Fail': 8495, 'IdeaPad_Fail': 1970, 'Desktop_Fail': 1592}

  • 然后需要做的是把字典中的数据写入到excel表格中:

使用win32com方法来修改Excel

import win32com.client

#使用win32com方法来修改Excel
def modify_excel_win32com(dict_data, filename, title):
    #用于修改Excel的配置
    xlApp = win32com.client.Dispatch('Excel.Application')

    #用xlApp打开用于修改和写入数据
    xlBook = xlApp.Workbooks.Open(filename, ReadOnly = False)

    sheet = xlBook.Worksheets('WeeklyData'
    col_size = sheet.UsedRange.columns.Count + 1
    #判断该title是否存在;如存在则覆盖数据;如不存在则新建数据
    print(sheet.UsedRange.Value[0])
    if title in sheet.UsedRange.Value[0]:
        # print(sheet.UsedRange.Value[0].index(title))
        col_size = sheet.UsedRange.Value[0].index(title) + 1
    else:
        try:
            col_size = sheet.UsedRange.Value[0].index(None) + 1
        except:
            pass
        finally:
            sheet.Cells(1, col_size).Value = title
            print(col_size)

    for key, value in dict_data.items():
        if key=='Install_A':
            sheet.Cells(2, col_size).Value = value
        elif key=='A_Users':
            sheet.Cells(3, col_size).Value = value
        elif key=='A_Fail':
            sheet.Cells(4, col_size).Value = value
            sheet.Cells(5, col_size).Value = '%.2f%%' % (value / sheet.Cells(2, col_size).Value * 100)
            # print(sheet.Cells(5, col_size).Value)
        elif key=='Install_B':
            sheet.Cells(6, col_size).Value = value
        elif key=='B_Users':
            sheet.Cells(7, col_size).Value = value
        elif key=='B_Fail':
            sheet.Cells(8, col_size).Value = value
            sheet.Cells(9, col_size).Value = '%.2f%%' % (value / sheet.Cells(6, col_size).Value * 100)
        elif key=='Install_C':
            sheet.Cells(10, col_size).Value = value
        elif key=='C_Users':
            sheet.Cells(11, col_size).Value = value
        elif key=='C_Fail':
            sheet.Cells(12, col_size).Value = value
            sheet.Cells(13, col_size).Value = '%.2f%%' % (value / sheet.Cells(10, col_size).Value * 100)
            sheet.Cells(14, col_size).Value = '%.2f%%' % ((sheet.Cells(4, col_size).Value + sheet.Cells(8, col_size).Value + value) 
                                                / (sheet.Cells(2, col_size).Value + sheet.Cells(6, col_size).Value + sheet.Cells(10, col_size).Value) 
                                                * 100)

    xlBook.Save()     #保存  
    xlApp.quit()   #关闭excel操作环境。

 

使用openpyxl库来修改Excel

from openpyxl import worksheet
from openpyxl import workbook
from openpyxl import load_workbook
from openpyxl.utils import get_column_letter

#使用openpyxl库来修改Excel
def modify_excel_openpyxl(dict_data, filename, title):    
    wb = load_workbook(filename)  #打开一个工作簿    
    sheet = wb['WeeklyData']  #获取一张表
    
    col_size = sheet.max_column+1
    first_row = []
    for i in range(1, col_size):
        first_row.append(sheet.cell(row=1, column=i).value)
    print(first_row)
    #判断该title是否存在;如存在则覆盖数据;如不存在则新建数据
    if title in first_row:
        col_size = first_row.index(title) + 1
    else:
        try:
            col_size = first_row.index(None) + 1
        except:
            pass
        finally:
            sheet.cell(row=1, column=col_size, value=title)

    print(get_column_letter(col_size))
    col_letter = get_column_letter(col_size)
    sheet[col_letter+'2'] = 'testtest'

    for key, value in dict_data.items():
        if key=='Install_A':
            sheet[col_letter+'2'] = value
        elif key=='A_Users':
            sheet[col_letter+'3'] = value
        elif key=='A_Fail':
            sheet[col_letter+'4'] = value
            sheet[col_letter+'5'] = '='+col_letter+'4/'+col_letter+'2'
        elif key=='Install_B':
            sheet[col_letter+'6'] = value
        elif key=='B_Users':
            sheet[col_letter+'7'] = value
        elif key=='B_Fail':
            sheet[col_letter+'8'] = value
            sheet[col_letter+'9'] = '='+col_letter+'8/'+col_letter+'6'
        elif key=='Install_C':
            sheet[col_letter+'10'] = value
        elif key=='C_Users':
            sheet[col_letter+'11'] = value
        elif key=='C_Fail':
            sheet[col_letter+'12'] = value
            sheet[col_letter+'13'] = '='+col_letter+'12/'+col_letter+'10'
            sheet[col_letter+'14'] = '=('+col_letter+'4+'+col_letter+'8+'+col_letter+'12)/('+col_letter+'2+'+col_letter+'6+'+col_letter+'10)'

    wb.save(filename)
    wb.close()

 

--结束END--

本文标题: Python: 读写Excel(open

本文链接: https://lsjlt.com/news/181581.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python: 读写Excel(open
    项目周报汇报的时候要做数据汇总,总是要从不同的excel文件中去获取数据最后汇总到一个excel表里面,所以决定用python直接写个自动化脚本来自动执行。 用python来读写excel,目前找了2个方法:win32com.client...
    99+
    2023-01-31
    Python Excel open
  • Python读写Excel
     读Excel 1 #打开Excek,xlsfile为Excel路径+文件名 2 boorRead = xlrd.open_workbook(xlsfile) 3 #读取sheet,sheet_name为Excel中sheet的名称...
    99+
    2023-01-30
    Python Excel
  • python读写excel文件
    项目中需要生成excel表格,在网上查了一些资料后,整理记录下。 1. 读excel表格 1 ''' 2 读取XLS,XLSX文件 3 ''' 4 def readExcelFile(filename): 5 # 打开...
    99+
    2023-01-30
    文件 python excel
  • Python文件读写open函数详解
    前言: open()函数的定义:def open(file, mode='r', buffering=None, encoding=None, errors=None...
    99+
    2024-04-02
  • python文件读写(open参数,文件
    1.基本方法 文件读写调用open函数打开一个文件描述符(描述符的个数在操作系统是定义好的) python3情况下读写文件: f = open('py3.txt','wt',encoding='utf-8') f.write(...
    99+
    2023-01-31
    文件 参数 python
  • python读写文件with open的介绍
    目录一、案例一(读取)1、读取文件 基本实现2、读取文件 中级实现3、读取文件 终极实现二、案例二(写入)1、、写入文件 基本实现2、写入文件终极实现简介: 使用python的过程中...
    99+
    2024-04-02
  • Python如何读写Excel表格
    这篇文章主要介绍Python如何读写Excel表格,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下python读取Excel表格:import xlrd  def r...
    99+
    2023-06-06
  • 用python读写excel的方法
    这篇文章主要介绍了用python读写excel的方法,涉及xlrd模块与xlwt模块的应用,具有一定的学习借鉴价值,需要的朋友可以参考下 本文实例讲述了用python读写excel的方法。分享给大家供大家参考。具体如下: 最近需要从...
    99+
    2023-01-31
    方法 python excel
  • JAVA读写excel
    使用Windows操作系统的朋友对Excel(电子表格)一定不会陌生,但是要使用Java语言来操纵Excel文件并不是一件容易的事。在Web应用日益盛行的今天,通过Web来操作Excel文件的需求越来越强烈,目前较为流行的操作是在JSP或S...
    99+
    2023-06-03
  • python读写文件with open如何实现
    小编给大家分享一下python读写文件with open如何实现,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、案例一(读取)首先创建一个我们要读写的...
    99+
    2023-06-25
  • python读写excel数据--pandas详解
    目录一、读写excel数据1.1 读:1.2写:二、举例2.1 要求2.2 实现总结一、读写excel数据 利用pandas可以很方便的读写excel数据 1.1 读: data...
    99+
    2024-04-02
  • 用Python读写操作Excel数据!
    对比其它编程语言,我们都知道Python最大的优势是代码简单,有丰富的第三方开源库供开发者使用。伴随着近几年数据分析的热度,Python也成为最受欢迎的编程语言之一。而对于数据的读取和存储,对于普通人...
    99+
    2023-09-10
    python excel 开发语言
  • Python使用openpyxl读写excel文件
    需求:读入sample.xlsx中的信息,通过分析其中的身份证号信息,得到每个人的出生日期,性别,年龄,所在省份,星座,属相等等,将结果写入到另一个excel文件中。 首先,要使用openpyxl第三方库需要安装,安装方法如下: pip i...
    99+
    2023-09-11
    python
  • python操作Excel读写--使用x
      一、安装xlrd模块    到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境。 二、使用介绍   1、导入模块       import xlrd  ...
    99+
    2023-01-31
    操作 python Excel
  • Python的open函数文件读写线程不
    工作中遇到的问题:如何在多线程的程序中同时记录日志? 最初图省事,使用了最原始的open函数来写日志,因为开始使用的写文件模式的是追加('a'),发现并没有线程不安全的现象,各个线程的的日志信息都写入到了日志文件中。 后来将写文件模式改成...
    99+
    2023-01-31
    线程 函数 文件
  • python读写修改Excel之xlrd&xlwt&xlutils
    py读写修改常用的三种方法 xlwt:用于写入 Excel 文件 xlrd:用于读取 Excel 文件 xlutils:用于操作 Excel 文件的实用工具,比如复制、...
    99+
    2024-04-02
  • 使用python怎么读写修改Excel
    这期内容当中小编将会给大家带来有关使用python怎么读写修改Excel,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。0、安装模块pip3 install xlrd xlwt...
    99+
    2023-06-15
  • Python读写EXCEL文件常用方法
    python读写excel的方式有很多,不同的模块在读写的讲法上稍有区别,这里我主要介绍几个常用的方式。 用xlrd和xlwt进行excel读写;用openpyxl进行excel读写;用pandas进行excel读写; 一、数据准备 为了方...
    99+
    2023-09-16
    python excel 数据分析
  • Python读写excel表格的方法二
    目的:实现用python的另一种方法做excel的读取、新增操作。环境:ubuntu 16.04  Python 3.5.2情景:之前介绍了一种操作excel文件的方法(私链),现在使用另一种方法读写excel文件,一次性读出或写入,读写也...
    99+
    2023-01-31
    表格 方法 Python
  • Python读写excel表格的方法一
    目的:实现用python做excel的读取、新增、修改操作。环境:ubuntu 16.04  Python 3.5.2用python读写文档,一般是操作txt文件或者可以用记事本打开的文件,因为这个操作很直接,不需要导入其他模块,但如果想要...
    99+
    2023-01-31
    表格 方法 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作