Python处理Excel

Python处理Excel

Python可以很简介的处理数据,又是可以代替excel做一些繁杂的工作。

Excel有两种格式:
	XLS是Office 2013或更早版本所使用的格式,是一种二进制格式的文件。XLSX则是用一系列XML文件组成的(最后的X代表了XML)一个压缩包。

1、工具包

XlsxWriter xlrd&xlwt&xlutils OpenPyXL
介绍 可以创建和写Excel 2007+ XLSX文件 xlrd、xlwt、xlutils三大模块分别提供读、写和其他功能 可以读、写Excel 2007+ /xlsm/xltx/xltm文件
修改 ⚠️
.xls
.xlsx xlrd: 0.8.0+ √ * xlwt:✘
大文件
功能 一般
速度
xlsxwriter
import xlsxwriter as xw

#只能用来创建新的文件,不能修改
workbook = xw.Workbook('hello.xlsx') # 建立文件

# 建立sheet, 可以work.add_worksheet('employee')来指定sheet名,但中文名会报UnicodeDecodeErro的错误
worksheet = workbook.add_worksheet('table1') 

worksheet.write('A', 'Hello world') # 向A1写入

workbook.close()

import xlsxwriter as xw



workbook = xw.Workbook('demo.xlsx')
worksheet = workbook.add_worksheet()

#设置样式启用
bold = workbook.add_format({'bold': True})

worksheet.write('A1', 'Hello')
#设置A2为黑体
worksheet.write('A2', 'World', bold)

#单元格从0开始
worksheet.write(2, 0, 123) # 第3行第1列
worksheet.write(3, 0, 123.456) # 第四行第1列
#插入图片
worksheet.insert_image('B5', 't.png')
workbook.close()
openpyxl
import openpyxl
# 读取excel中的数据
# 第一步:打开工作簿
wb = openpyxl.load_workbook('cases.xlsx')
# 第二步:选取表单
sh = wb['Sheet']
# 第三步:读取数据
# 参数 row:行  column:列
ce = sh.cell(row = 1,column = 1)   # 读取第一行,第一列的数据
print(ce.value)
# 按行读取数据 list(sh.rows)
print(list(sh.rows)[1:])     # 按行读取数据,去掉第一行的表头信息数据

# 关闭工作薄
wb.close()

2、pandas

pandas是数据科学相关的包,其他也提供了对多种数据文件的io,也包括excel,能够大规模的进行io,但是底层的驱动还是基于以上的工具包。
#读出ok.xls中的Shell1表,这里使用的是xlrd包作为底层驱动
data=pd.read_excel('ok.xls','Sheet1')
print(data)

#写到xlsx文件中
data.to_excel("demo2.xlsx")

#选择一个驱动
data=pd.read_excel('cases.xlsx',engine="openpyxl")
print(data)

  #读的底层调用
    _engines = {
        "xlrd": _XlrdReader,
        "openpyxl": _OpenpyxlReader,
        "odf": _ODFReader,
        "pyxlsb": _PyxlsbReader,
    }
    
     Supported engines: "xlrd", "openpyxl", "odf", "pyxlsb", default "xlrd".
    Engine compatibility :
    - "xlrd" supports most old/new Excel file formats.
    - "openpyxl" supports newer Excel file formats.
    - "odf" supports OpenDocument file formats (.odf, .ods, .odt).
    - "pyxlsb" supports Binary Excel files.
   
    
  #写的底层调用,根据文件后缀选择驱动
    _default_writers = {
        "xlsx": "openpyxl",
        "xlsm": "openpyxl",
        "xls": "xlwt",
        "ods": "odf",
    }
      xlsxwriter = import_optional_dependency(
        "xlsxwriter", raise_on_missing=False, on_version="warn"
    )
posted @ 2020-11-02 14:23  cgl_dong  阅读(176)  评论(0编辑  收藏  举报