文章目录

  • 每篇前言
  • 一、Python操作Excel 7大库对比
  • 二、xlrd 读取excel操作
    • 1. 打开文件
    • 2. 获取所有表名
    • 3. 指定sheet表
    • 4. 对sheet表的行操作
    • 5. 对sheet表的列操作
  • 三、xlwt 写入Excel表操作
    • 1. 写入单个数据
    • 2. 写入多个数据
    • 3. 设置列宽
    • 4. 设置行高
    • 5. 设置单元格风格
  • 四、 如何让学习更加高效呢?
  • 五、参与抽粉丝送书啦

每篇前言

  • 作者介绍:Python领域优质创作者、华为云享专家、阿里云专家博主、2021年CSDN博客新星Top6

  • 本文已收录于Python全栈系列专栏:《100天精通Python从入门到就业》
  • ​​此专栏文章是专门针对Python零基础小白所准备的一套完整教学,从0到100的不断进阶深入的学习,各知识点环环相扣
  • 订阅专栏后续可以阅读Python从入门到就业100篇文章还可私聊进两百人Python全栈交流群(手把手教学,问题解答); 进群可领取80GPython全栈教程视频 + 300本计算机书籍:基础、Web、爬虫、数据分析、可视化、机器学习、深度学习、人工智能、算法、面试题等。
  • 加入我一起学习进步,一个人可以走的很快,一群人才能走的更远!


一、Python操作Excel 7大库对比

Excel是Windows环境下流行的、强大的电子表格应用。无论是在工作中还是学习中我们都几乎在不间断的使用Excel来 记录或者处理一些数据。 例如,可能有-个无聊的任务,需要从一个电子表格拷贝一些数据,粘贴到另一个电子表格中。或者可能需要从几千行中挑选几行,根据某种条件稍作修改。或者需要查看几百份部门预算电子表格,寻找其中的 指定内容。正是这种无聊无脑的电子表格任务,如果让人工来手动完成,则无论是时间升本还是精力成本都不是一件好事情,但是可以通过Python来完成。

7大库功能对比图如下(本文主要介绍:xlrd和xlwt):

二、xlrd 读取excel操作

xlrd模块用于读取Excel的数据,速度非常快。支持.xls.xlsx两种文件格式的读取

1. cmd控制台安装模块

pip install xlrd

2. 导入模块

import xlrd

测试表如下:

1. 打开文件

xlrd.open_workbook(path)

wb = xlrd.open_workbook("./a.xls")print(wb)

运行结果:

<xlrd.book.Book object at 0x000001F905A33DC0>

2. 获取所有表名

wb.sheet_names()

sheet_names_list = wb.sheet_names()print(sheet_names_list)

运行结果:

['Sheet1', 'Sheet2', 'Sheet3']

3. 指定sheet表

wb.sheet_by_index(索引) or wb.sheet_by_name("sheet表名")

# 方式1:索引顺序获取sheet_1 = wb.sheet_by_index(0)# 方式2:名称获取sheet_2 = wb.sheet_by_name("Sheet1")

4. 对sheet表的行操作

  • 1. 获取sheet表总函数sheet.nrows
  • 2. 返回由该行中所有的单元格对象组成的列表,列表内是键值对sheet.row(1),如:[列名1:'值',列名2:'值', ...]
  • 或者sheet.row_slice(1)
  • 3. 返回指定行的所有单元格数值组成的列表sheet.row_values(rowx, start_colx=0, end_colx=None) ,如:['值1','值2',...]
  • 4. 返回指定行的有效长度sheet.row_len(rowx)
# 1.获取sheet表总函数:sheet.nrowsprint("总行数为:", sheet_1.nrows)# 2.返回由该行中所有的单元格对象组成的列表,列表内是键值对: sheet.row(1)print(sheet_1.row(1))# 或者sheet.row_slice(1)print(sheet_1.row_slice(1))# 3.返回指定行的所有单元格数值组成的列表: sheet.row_values(rowx, start_colx=0, end_colx=None)print(sheet_1.row_values(1))# 4.返回指定行的有效长度:sheet.row_len(rowx)print("返回指定行的有效长度:", sheet_1.row_len(1))print('-' * 20)# 5. 读取整个表for i in range(sheet_1.nrows):print(sheet_1.row_values(i))

运行结果:

总行数为: 4[text:'物品1', empty:'', number:100.0, text:'EUR 0.1', text:'EUR 0.1'][text:'物品1', empty:'', number:100.0, text:'EUR 0.1', text:'EUR 0.1']['物品1', '', 100.0, 'EUR 0.1', 'EUR 0.1']返回指定行的有效长度: 5--------------------['item', 'b', 'PCS', 'UNIT', 'TOTAL']['物品1', '', 100.0, 'EUR 0.1', 'EUR 0.1']['物品2', '', 100.0, 'EUR 0.1', 'EUR 0.1']['物品3', '', 200.0, 'EUR 0.2', 'EUR 0.2']

5. 对sheet表的列操作

  • 1. 返回指定sheet表的有效列数sheet.ncols
  • 2. 返回由该列中所有的单元格对象组成的列表,列表内是键值对sheet.col(1),如:[列名1:'值',列名2:'值', ...]
  • 或者sheet.col_slice(1)
  • 3. 返回指定列的所有单元格数值组成的列表:sheet.col_values(colx, start_colx=0, end_colx=None),如:['列名','值1','值2',...]
# 1. 返回指定sheet表的有效列数:sheet.ncolsprint("总列数为:", sheet_1.ncols)# 2. 返回由该列中所有的单元格对象组成的列表,列表内是键值对:sheet.col(1)print(sheet_1.col(1))# 或者sheet.col_slice(1)print(sheet_1.col_slice(1))# 3. 返回指定列的所有单元格数值组成的列表:sheet.col_values(colx, start_colx=0, end_colx=None)print(sheet_1.col_values(0))# 带列名print(sheet_1.col_values(0, 1))# 不带列名print('-' * 20)# 4. 读取全部表for i in range(sheet_1.ncols):print(sheet_1.col_values(i))

运行结果:

总列数为: 5[text:'b', empty:'', empty:'', empty:''][text:'b', empty:'', empty:'', empty:'']['item', '物品1', '物品2', '物品3']['物品1', '物品2', '物品3']--------------------['item', '物品1', '物品2', '物品3']['b', '', '', '']['PCS', 100.0, 100.0, 200.0]['UNIT', 'EUR 0.1', 'EUR 0.1', 'EUR 0.2']['TOTAL', 'EUR 0.1', 'EUR 0.1', 'EUR 0.2']

三、xlwt 写入Excel表操作

xlwt 模块可以将数据写入到 Excel 工作簿中。目前已支持写入.xls.xlsx两种文件格式

1. cmd控制台安装模块

pip install xlwt

2. 导入模块

import xlwt

1. 写入单个数据

  • 1. 创建Excel表对象xlwt.Workbook(encoding='utf8')
  • 2. 新建sheet表worksheet = workbook.add_sheet('Sheet1')
  • 3. 写入数据到指定单元格worksheet.write(0, 0, "python")。第一个参数是第 i 行,第二个是第 j 列,第三个是要写的参数(字符串或数字)
  • 4. 保存文件workbook.save('test.xlsx')。目前已支持写入.xls.xlsx两种文件格式

测试代码:

import xlwt# 1. 创建Excel表对象workbook = xlwt.Workbook(encoding='utf8')# 2. 新建sheet表worksheet = workbook.add_sheet('Sheet1')# 3. 写入数据到指定单元格worksheet.write(0, 0, "python")# 4. 保存文件分两种格式workbook.save('test.xls')workbook.save('test.xlsx')

运行结果如下:生成两个新文件

2. 写入多个数据

测试代码:

import xlwtdata_list = [('小白', '20', '男'), ('小黑', '21', '男'), ('小红', '20', '女')]# 1. 创建Excel表对象workbook = xlwt.Workbook(encoding='utf8')# 2. 新建sheet表worksheet = workbook.add_sheet('Sheet1')# 3. 自定义列名col1 = ('姓名', '年龄', '性别')# 4. 将列属性元组col写进sheet表单中第一行for i in range(0, len(col1)):worksheet.write(0, i, col1[i])# 5. 将数据写进sheet表单中for i in range(0, len(data_list)):data = data_list[i]for j in range(0, len(col1)):worksheet.write(i + 1, j, data[j])# 6. 保存文件分两种格式workbook.save('test.xls')

运行结果:

3. 设置列宽

cols_num是列的数目,可以通过修改12这个值,修改列的宽度

for c in range(len(col1)):worksheet.col(c).width = 256 * 24

运行结果:

4. 设置行高

设置行高,修改1600为别的值,可以修改行的高度

测试代码:

# 5. 将数据写进sheet表单中for i in range(0, len(data_list)):data = data_list[i]for j in range(0, len(col1)):worksheet.write(i + 1, j, data[j])# 6. 设置行高worksheet.row(i + 1).height_mismatch = Trueworksheet.row(i + 1).height = 1600# 设置行高

运行结果:

5. 设置单元格风格

常用设置单元格的属性:

样式说明
xlwt.Font()字体设置
xlwt.Pattern()背景设置
xlwt.Borders()边框设置
xlwt.Alignment()对准设置

测试代码:

def body_style():# 一、创建一个样式对象,初始化样式 stylestyle = xlwt.XFStyle()# Create Style对象# 二、字体风格设置font = xlwt.Font()# Create Font对象font.name = "SimSun"# 设置字体类型,宋体font.colour_index = 4# 设置字体颜色font.height = 20 * 12# 字体大小,12为字号,20为衡量单位font.bont = True# 设置字体加粗font.underline = True# 下划线font.italic = True# 斜体字# 二、背景设置pattern = xlwt.Pattern()pattern.pattern = xlwt.Pattern.SOLID_PATTERN# May be: NO_PATTERN, SOLID_PATTERN, or 0x00 through 0x12pattern.pattern_fore_colour = 4# 给背景颜色赋值# 三、边框设置borders = xlwt.Borders()# 创建边框对象,# .DASHED:虚线;.NO_LINE:没有# 上下左右都添加边框borders.left = 1borders.right = 1borders.top = 1borders.bottom = 1# 设置边框颜色borders.left_colour = 2borders.right_colour = 2borders.top_colour = 2borders.bottom_colour = 2# 四、位置设置alignment = xlwt.Alignment()alignment.horz = 1# 设置水平位置,0是左对齐,1是居中,2是右对齐alignment.wrap = 1# 设置自动换行# 五、设置好之后,全部都加到style上style.alignment = alignmentstyle.font = fontstyle.borders = bordersreturn style

应用样式:

sheet.write(row, column, i)# 不带格式sheet.write(row, column, i, style)# 有格式

运行结果:

四、 如何让学习更加高效呢?

1. 编程小白选手

很多刚入门编程的小白学习了基础语法,却不知道语法的用途,不知道如何加深映像,不知道如何提升自己,这个时候每天刷自主刷一道题就非常重要(百炼成神),可以去牛客网上的编程初学者入门训练。该专题为编程入门级别,适合刚学完语法的小白练习,题目涉及编程基础语法,基本结构等,每道题带有练习模式和考试模式,可还原考试模式进行模拟,也可通过练习模式进行练习。

链接地址:牛客网 | 编程初学者入门训练

2. 编程进阶选手

当基础练习完已经逐步掌握了各知识要点后,这个时候去专项练习中学习数据结构、算法基础、计算机基础等。先从简单的入手,感觉上来了再做中等难度,以及较难的题目。这三样是面试中必考的知识点,我们只有坚持每日自己去多加练习,拒绝平躺持续刷题,不断提升自己才能冲击令人满意的公司。

链接地址:牛客网 | 专项练习

速度上号,大家一起冲击大厂,有疑问评论区留言解答!!!

五、参与抽粉丝送书啦

书籍展示:《 Python数据分析与可视化从入门到精通》

【抽奖方式】关注博主、点赞收藏文章后,评论区留言:人生苦短,我用Python!!!博主会用爬虫代码随机抽取三人送书! 【开奖时间】:截止到周日晚8点,博主会用爬虫代码随机抽取三人送书!


【书籍内容简介】

  • 本书以“零基础”为起点,系统地介绍了Python在数据处理与可视化分析方面的应用。全书共分3篇12章内容,具体安排如下。
  • 第1篇:基础篇,包括第1-4章。第1章 先来认识一下大蟒:Python入门。第2章 磨好利牙,子弹上膛:准备好工作环境。第3章 大蟒的基本技能之一:Python语言基础。第4章 大蟒的基本技能之二:Python语言进阶。
    第2篇:应用篇,包括第5-11章。第5章 给大蟒找食:Python的数据存取操作。第6章 洗干净了再吃:使用Python预处理数据。第7章 什么食物有营养:大数据分析及可视化基础知识。第8章 大蟒神通之一:使用matplotlib绘制基础图形。第9章 大蟒神通之二:使用matplotlib美化和修饰图形。第10章 大蟒神通之三:数据可视化之3D图形应用。第11章 大蟒神通之四:使用图像和地图绘制图表。
    第3篇:实战篇,第12章 综合案例:全国县级市天气预报数据可视化分析。以抓取中国天气网相关数据存入MySQL数据库,并绘制相应图形为主线,综合本书各章知识点介绍了数据采集、清理、保存以及绘制可视化图形的基本步骤和方法。

也有不想靠抽的小伙伴可以参考下面

  • 京东自营:https://item.jd.com/12832122.html

  • 当当自营:http://product.dangdang.com/28528261.html