Python数据处理-导入导出excel数据

目录
  • 一.xlwt库将数据导入Excel
    • 1.将数据写入一个Excel文件
    • 2.定制Excel表格样式
    • 3.元格对齐
    • 4.单元格的背景色
    • 5.单元格边框
  • 二、xlrd库读取Excel中的数据
    • 1.读取Excel文件
    • 2.工作表的相关操作
    • 3.处理时间数据

前言:

Python的一大应用就是数据分析了,而数据分析中,经常碰到需要处理Excel数据的情况。这里做一个Python处理Excel数据的总结,基本受用大部分情况。相信以后用Python处理Excel数据不再是难事儿!

一.xlwt库将数据导入Excel

1.将数据写入一个Excel文件

wb = xlwt.Workbook()
# 添加一个表
ws = wb.add_sheet('test')
 
 
# 3个参数分别为行号,列号,和内容
# 需要注意的是行号和列号都是从0开始的
ws.write(0, 0, '第1列')
ws.write(0, 1, '第2列')
ws.write(0, 2, '第3列')
 
# 保存excel文件
wb.save('./test.xls')

可以看到,用xlwt库操作非常简单,基本就三步走:

  • 打开一个Workbook对象,并用add_sheet方法添加一个表
  • 然后就是用write方法写入数据
  • 最后用save方法保存

需要注意的是:xlwt库里面所定义的行和列都是从0开始计数的

2.定制Excel表格样式

表格样式一般主要有这么几块内容:字体、对齐方式、边框、背景色、宽度以及特殊内容,比如超链接、日期时间等。下面我们来分别看看用xlwt库怎么定制这些样式。

字体

xlwt库支持的字体属性也比较多,大概如下:

设置字体需要用到xlwt库的XFStyle类和Font类,代码模版如下:

style = xlwt.XFStyle()
 
# 设置字体
font = xlwt.Font()
# 比如设置字体加粗和下划线
font.bold = True
font.underline = True
style.font = font
 
# 然后应用
ws.write(2, 1, 'test', style)

后续几个属性的设置都是类似的,都是4步走:

  • 拿到XFStyle
  • 拿到对应需要的属性,比如这里的Font对象
  • 设置具体的属性值
  • 最后就是在write方法写入数据的时候应用就行

3.元格对齐

先来看单元格对齐怎么设置:

# 单元格对齐
alignment = xlwt.Alignment()
 
# 水平对齐方式和垂直对齐方式
alignment.horz = xlwt.Alignment.HORZ_CENTER
alignment.vert = xlwt.Alignment.VERT_CENTER
# 自动换行
alignment.wrap = 1
style.alignment = alignment
 
# 然后应用
ws.write(2, 1, 'test', style)

上面这个自动换行的属性还是蛮有用的,因为我们很多时候数据会比较长,最好再加上单元格的宽度属性一起使用,这样整体样式会好很多

单元格宽度设置:

# 设置单元格宽度,也就是某一列的宽度
ws.col(0).width = 6666

4.单元格的背景色

背景色对应的属性是 Pattern

# 背景色
pattern = xlwt.Pattern()
pattern.pattern = xlwt.Pattern.SOLID_PATTERN
 
# 背景色为黄色
# 0 = Black, 1 = White, 2 = Red, 3 = Green, 4 = Blue, 5 = Yellow, 6 = Magenta,
# 7 = Cyan, 16 = Maroon, 17 = Dark Green, 18 = Dark Blue, 19 = Dark Yellow ,
# almost brown), 20 = Dark Magenta, 21 = Teal, 22 = Light Gray, 23 = Dark Gray
# ...
pattern.pattern_fore_colour = 5
style.pattern = pattern
 
# 然后应用
ws.write(2, 1, 'test', style)

5.单元格边框

边框属性是Borders

单元格边框就2类:颜色和边框线样式

可以分别设置上下左右边框的颜色和样式:

# 边框
borders = xlwt.Borders()
 
# 边框可以分别设置top、bottom、left、right
# 每个边框又可以分别设置颜色和线样式:实线、虚线、无
# 颜色设置,其他类似
borders.left_colour = 0x40
# 设置虚线,其他类似
borders.bottom = xlwt.Borders.DASHED
style.borders = borders
 
# 然后应用
ws.write(2, 1, 'test', style)

特殊内容,比如超链接和公式

特殊内容一般主要会碰到这几类:超链接、公式和时间日期

处理这些特殊内容需要用到Formula

# 超链接
link = 'HYPERLINK("http://www.baidu.com";"Baidu")'
formula = xlwt.Formula(link)
ws.write(2, 0, formula)
 
# 公式也是类似
ws.write(1, 1, xlwt.Formula('SUM(A1,B1)'))
 
# 时间
style.num_format_str = 'M/D/YY'
ws.write(2, 1, datetime.datetime.now(), style)

以上就是用Python将数据写入到Excel的全部内容了,下面我们再来看看怎么读取Excel中的数据做处理。

二、xlrd库读取Excel中的数据

1.读取Excel文件

同样的用xlrd库读取Excel的数据也是轻轻松松,先来看下实现代码:

# 先打开一个文件
wb = xlrd.open_workbook(file_path)
# 获取第一个表
sheet1 = wb.sheet_by_index(0)
 
# 总行数
nrows = sheet1.nrows
# 总列数
ncols = sheet1.ncols
 
# 后面就通过循环即可遍历数据了
# 取数据
for i in range(nrows):
    for j in range(ncols):
        # cell_value方法取出第i行j列的数据
        value = sheet1.cell_value(i, j)
        print(value)

总结一下,分为一下几步:

首先通过xlrd库的open_workbook方法打开Excel文件
然后通过sheet_by_index方法获取表
然后分别获取表的行数和列数,便于后面循环遍历
根据列数和行数,循环遍历,通过cell_value方法获取每个单元格中的数据

2.工作表的相关操作

获取一个工作表,有多种方式:

# 通过索引
sheet1 = wb.sheets()[0]
sheet1 = wb.sheet_by_index(0)
 
# 通过名字
sheet1 = wb.sheet_by_name('test')
 
# 获取所有表名
# sheet_names = wb.sheet_names()

获取某一行或某一列的所有数据:

# 获取行中所有数据,返回结果是一个列表
tabs = sheet1.row_values(rowx=0, start_colx=0, end_colx=None)
# 返回一行一共有多少数据
len_value = sheet1.row_len(rowx=0)

row_values的三个参数分别是:行号、开始的列和结束的列,其中结束的列为None表示获取从开始列到最后的所有数据

类似的还有获取某一列的数据:

cols = sheet1.col_values(colx=0, start_rowx=0, end_rowx=None)

3.处理时间数据

时间数据比较特殊,没发直接通过上面的cell_value方法获取。需要先转换为时间戳,然后再格式化成我们想要的格式。

比如要获取Excel表格中,格式为2019/8/13 20:46:35的时间数据

# 获取时间
time_value = sheet1.cell_value(3, 0)
 
# 获取时间戳
time_stamp = int(xlrd.xldate.xldate_as_datetime(time_value, 0).timestamp())
print(time_stamp)
 
# 格式化日期
time_rel = time.strftime("%Y/%m/%d", time.localtime(time_stamp))
print(time_rel)

基本也是三步走:

  • 通过cell_value方法获取时间值
  • 然后通过xldate_as_datetime方法获取时间戳
  • 然后格式化一下

Excel文件是用Python处理数据时常会碰到的一类场景,有了xlwt 和 xlrd的帮助可以非常快速的导入和导出Excel数据。

到此这篇关于Python数据处理-导入导出excel数据的文章就介绍到这了,更多相关Python 导入导出excel数据内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 配置python连接oracle读取excel数据写入数据库的操作流程

    前提条件:本地已经安装好oracle单实例,能使用plsql developer连接,或者能使用TNS连接串远程连接到oracle集群 读取excel写入数据库的方式有多种,这里介绍的是使用pandas写入,相对来说比较简便,不需要在读取excel后再去整理数据 整个过程需要分两步进行: 一.配置python连接oracle并测试成功 网上有不少教程,但大部分都没那么详细,并且也没有说明连接单实例和连接集群的区别,这里先介绍连接oracle单实例的方式,后续再补充连接oracle集群方式. 版本

  • python读写excel数据--pandas详解

    目录 一.读写excel数据 1.1 读: 1.2写: 二.举例 2.1 要求 2.2 实现 总结 一.读写excel数据 利用pandas可以很方便的读写excel数据 1.1 读: data_in = pd.read_excel('M2FENZISHI.xlsx') 1.2写: 首先要创建数据框 # example df = pd.DataFrame({'A':[0,1,2]}) writer = pd.ExcelWriter('test.xlsx') #name of excel file

  • 用Python将Excel数据导入到SQL Server的例子

    使用环境:Win10 x64 Python:3.6.4 SqlServer:2008R2    因为近期需要将excel导入到SQL Server,但是使用的是其他语言,闲来无事就尝试着用python进行导入,速度还是挺快的,1w多条数据,也只用了1s多,代码也比较简单,就不多解释了. 用到的库有xlrd(用来处理excel),pymssql(用来连接使用sql server) import xlrd import pymssql import datetime # 连接本地sql server

  • Python数据处理-导入导出excel数据

    目录 一.xlwt库将数据导入Excel 1.将数据写入一个Excel文件 2.定制Excel表格样式 3.元格对齐 4.单元格的背景色 5.单元格边框 二.xlrd库读取Excel中的数据 1.读取Excel文件 2.工作表的相关操作 3.处理时间数据 前言: Python的一大应用就是数据分析了,而数据分析中,经常碰到需要处理Excel数据的情况.这里做一个Python处理Excel数据的总结,基本受用大部分情况.相信以后用Python处理Excel数据不再是难事儿! 一.xlwt库将数据导

  • C#导入导出Excel数据的两种方法

    本文为大家分享了C#导入导出Excel数据的具体代码,供大家参考,具体内容如下 注:对于实体类对象最好新建一个并且继承原有实体类,这样可以将类型进行修改: 方法一:此种方法是用EPPLUS中的FileInfo流进行读取的(是不是流我还真不太了解,若有懂得请留言,非常感谢了) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tas

  • Oracle 使用TOAD实现导入导出Excel数据

    在Oracle应用程序的开发过程中,访问数据库对象和编写SQL程序是一件乏味且耗费时间的工作,对数据库进行日常管理也是需要很多SQL脚本才能完成的.Quest Software为此提供了高效的Oracle应用开发工具-Toad.在Toad的新版本中,还加入了DBA模块,可以帮助DBA完成许多日常管理工作.它最大的特点就是简单易用,访问速度快.使用Toad,我们可以通过一个图形化的用户界面快速访问数据库,完成复杂的SQL和PL/SQL代码编辑和测试工作.Toad由Oracle开发专家专门为开发人员

  • SQL 导入导出Excel数据的语句

    --从Excel文件中,导入数据到SQL数据库中,很简单,直接用下面的语句: /*===================================================================*/ --如果接受数据导入的表已经存在 insert into 表 select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$) --如果导入

  • python导入导出redis数据的实现

    目录 一.导出redis某个库的数据 使用python向Redis批量导入数据 二.导入redis某个库的数据 注:以String类型为例 一.导出redis某个库的数据 import redis import json file_path = "why.json" redis_conn = redis.Redis(host="192.168.1.123", port=6387, password="123zxcv", db=2, decode_

  • Asp.Net使用Npoi导入导出Excel的方法

    asp.net针对Excel文件的导入与导出是非常常见的功能之一.本文实例讲述了Asp.Net使用Npoi导入导出Excel的方法.分享给大家供大家参考之用.具体方法如下: 在使用Npoi导出Excel的时候,服务器可以不装任何office组件,一般在导出时用到Npoi导出Excel文件,所导Excel也符合规范,打开时也不会有任何文件损坏之类的提示.但是在做导入时还是使用OleDb的方式,这种方式的导入在服务器端似乎还是需要装office组件的. 一.Npoi导出/下载Excel 具体功能代码

  • php导入导出excel实例

    这里实现的PHP导入导出excel功能用到的是开源PHPExcel,执行下面的操作之前请先下载该类库文件,官方网站:http://www.codeplex.com/PHPExcel,官网案例代码很多,导出pdf什么的都有,这里主要介绍PHP导入导出excel的功能,导出excel文件是office2007格式,同时兼容2003. php导入excel导入的excel文件的数据格式,截图如下:下面是将该excel文件的数据导入到数据库的具体代码: 复制代码 代码如下: <?phprequire_o

  • ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】

    本文实例讲述了ThinkPHP框架实现导出excel数据的方法.分享给大家供大家参考,具体如下: 在ThinkPHP框架下,导出excel数据的方法示例: 在操作前,应该在系统框架的扩展目录中添加ORG库,即要包含ThinkPHP\Extend\Library\ORG\Util\PHPExcel.class.php文件及其相关支持文件. <?php header("Content-type: text/html; charset=utf-8"); class MesTestAct

  • python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例

    这篇文章主要介绍了python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 贴上一个例子,里面设计很多用法,根据将相同日期的某些行合并处理. from openpyxl import Workbook from openpyxl.styles import Font, Fill, Alignment, Border, Side, PatternFill from handle

  • Java实现导入导出Excel文件的方法(poi,jxl)

    目前,比较常用的实现Java导入.导出Excel的技术有两种Jakarta POI和Java Excel直接上代码: 一,POI POI是apache的项目,可对微软的Word,Excel,Ppt进行操作,包括office2003和2007,Excl2003和2007.poi现在一直有更新.所以现在主流使用POI. xls: pom: <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi

随机推荐