安装xlrd模块和xlwt模块

读取Excel文件了内容需要额外的模块—— \(xlrd\),在官网上可以找到下载:https://pypi.python.org/pypi/xlrd#downloads

下载完毕后解压到当前文件夹,点击进入,可以找到一个 setup.py 文件,在当前目录下打开 cmd 窗口,运行“python setup.py install”(需要提前将python添加环境变量),成功后,去Python Shell中运行“import xlrd”试一下,应该没什么问题。解压得到的xlrd模块文件都可以删除。

另外,如果你使用PyCharm的话,那就更好办了,点击"File" -> "Settings" -> "Project interpreter" -> "+" -> 查找"xlrd" -> "install package",OK了。

同样的,写入Excel文件需要的是 \(xlwt\) 模块,方法类似,就不多解释了。下载地址:https://pypi.python.org/pypi/xlwt

读取Excel文件

不得不说,这个模块简单易懂,容易上手,几分钟就会了。直接看代码如何使用吧!

class myExcel(object):
def __init__(self, excelPath):
self.path = excelPath def readExcel(self):
excel = xlrd.open_workbook(self.path) # get sheet names
print(excel.sheet_names())
# get sheet content(By index or By name)
sheet = excel.sheet_by_index(0)
sheet1 = excel.sheet_by_name("Sheet1")
sheet2 = excel.sheets()[0]
# get sheet info
print(sheet.name, sheet.nrows, sheet.ncols)
# get row/col content
row = sheet.row_values(0)
col = sheet.col_values(0)
print(row, col)
# get cell value
cell = sheet.cell(0, 0)
print(cell.value)
print(sheet.cell_value(0, 0))
print(sheet.row(0)[0].value)
# get cell ctype:0empty 1string 2number 3date 4boolean 5error
print(sheet.cell(0, 0).ctype) return excel def printExcel(self):
excel = self.readExcel()
sheet = excel.sheets()[0]
for i in range(0, sheet.nrows):
row = sheet.row_values(i)
for item in row:
print(item, '|')

写入Excel文件

这个也还行,单纯的加入数据还是挺简单的。

发现了一个问题,这个xlwt模块只能保存为".xls"表格,有点绝望。

稍微查了一下,果然存在可以保存为".xlsx"表格的模块,叫做 \(openpyxl\),请参考:https://www.cnblogs.com/anpengapple/p/6399304.html?utm_source=itdadao&utm_medium=referral

    def writeOneRow(self, sheet, nrow, rowList):
# 格式:{单元格:背景黄色;字体:红色粗体}
style = xlwt.easyxf('pattern: pattern solid, fore_colour yellow;font: bold 0, color red;') ncol = 0
for row in rowList:
sheet.write(nrow, ncol, row, style)
ncol += 1 def writeExcel(self, excelName):
# create a Excel and add sheet
excel = xlwt.Workbook()
sheet = excel.add_sheet('sheet1', cell_overwrite_ok=True) headList = ['Stu_id', 'name', 'sex']
data = [['1', 'stu1', '男'],
['2', 'stu2', '男'],
['3', 'stu3', '女'],] self.writeOneRow(sheet, 0, headList)
for nrow in range(0, 3):
self.writeOneRow(sheet, nrow, data[nrow]) excel.save(excelName)

Excel转换成Markdown格式

其实这是我做这个小练习的主要原因,由于随笔都是用Markdowm格式写的,有一篇随笔是LeetCode所有题目的列表:

LeetCode All in One题解汇总(持续更新中...)。我才不想一条一条加呢!稍微转换一下,添加点格式符号就OK了。

    def toMarkdown(self, mdName):
excel = self.readExcel()
sheet = excel.sheets()[0] file = open(mdName, 'w', encoding='utf-8')
rowStr = "| %d | [%s]() | %.3f | '%s' |\n" try:
file.write('| 编号 | 题名 | 过题率 | 难度 |' + '\n')
file.write('| :------------: |:---------------: | :------------:| :-----:|' + '\n') for i in range(0, sheet.nrows):
row = sheet.row_values(i)
data = rowStr % (int(row[0]), str(row[1]), float(row[2]), str(row[3]))
file.write(data) print('成功写入文件,共有%d条记录...' % sheet.nrows)
except Exception as e:
print(e)
finally:
file.close()

完整代码:https://github.com/Pacsiy/learnPY/tree/master/LeetCodeAllProblem


本文版权归作者AlvinZH和博客园所有,欢迎转载和商用,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.


Python小实验——读&写Excel文件内容的更多相关文章

  1. openpyxl -用于读/写Excel 2010 XLSX/XLSM文件的python库

    openpyxl -用于读/写Excel 2010 XLSX/XLSM文件的python库¶ https://www.osgeo.cn/openpyxl/index.html

  2. 使用Python xlwt写excel文件

    如果需要使用Python写Excel文件,首先下载或者安装xlwt. pip install xlwt 下面的这些demo应该可以帮助开发者快速上手使用xlwt写Excel文件: 创建工作簿(work ...

  3. Pandas 基础(4) - 读/写 Excel 和 CSV 文件

    这一节将分别介绍读/写 Excel 和 CSV 文件的各种方式: - 读入 CSV 文件 首先是准备一个 csv 文件, 这里我用的是 stock_data.csv, 文件我已上传, 大家可以直接下载 ...

  4. 第15.25节 PyQt(Python+Qt)入门学习:Model/View开发实战--使用QTableView展示Excel文件内容

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 在前面的订阅专栏<第十九章.Model/View开发:QTableView的功能及属 ...

  5. 基于Python的接口自动化-读写excel文件

    引言 使用python进行接口测试时常常需要接口用例测试数据.断言接口功能.验证接口响应状态等,如果大量的接口测试用例脚本都将接口测试用例数据写在脚本文件中,这样写出来整个接口测试用例脚本代码将看起来 ...

  6. Java使用jxl.jar包写Excel文件的最适合列宽问题基本实现

    以前用jxl.jar包,读写过Excel文件.也没有注意最适合列宽的问题,但是jxl.jar没有提供最适合列宽的功能,上次用到写了一下,可以基本实现最适合列宽. 注意,这个只是基本可以实现,基本针对中 ...

  7. 用Python的pandas框架操作Excel文件中的数据教程

    用Python的pandas框架操作Excel文件中的数据教程 本文的目的,是向您展示如何使用pandas 来执行一些常见的Excel任务.有些例子比较琐碎,但我觉得展示这些简单的东西与那些你可以在其 ...

  8. JXL包大解析;Java程序生成excel文件和解析excel文件内容

    最近需求变化,需要把excel导入 我以前没有做过,所以我查了一些资料 和参考别人的代码 以下是多种方式: import java.io.File; import java.io.FileInputS ...

  9. java对excel文件内容读写修改操作

    Read.java package domain; import java.io.FileInputStream; import java.io.InputStream; import jxl.Cel ...

随机推荐

  1. Sprint boot notes

    1. spring.io 官网 2. http://javainuse.com/spring/sprboot spring boot学习资源 3. spring boot websocketss视频  ...

  2. 枚举Enum转换为List,获取枚举的描述

    代码: public class EnumberHelper { public static List<EnumberEntity> EnumToList<T>() { Lis ...

  3. YUI前端优化之Server篇

    二.网站Server 篇:使用内容分发网络为文件头指定Expires或Cache-ControlGzip压缩文件内容配置ETag尽早刷新输出缓冲使用GET来完成AJAX请求 11.使用内容分发网络 用 ...

  4. 一些使用的linux库

    1.curl网络库 apt-get install libcurl4-openssl-dev sudo apt-get install curl 2.jsoncpp库 sudo apt-get ins ...

  5. va泛型

    va泛型 什么是泛型? 泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类.可以把类型参数看作是使用参数化类型时指定的 ...

  6. AspNet.WebAPI.OData.ODataPQ实现WebAPI的分页查询服务-(个人拙笔)(转)

    出处:http://www.bubuko.com/infodetail-827612.html AspNet.WebAPI.OData.ODataPQ 这是针对 Asp.net WebAPI ODat ...

  7. CodeForces 687B Remainders Game(数学,最小公倍数)

    题意:给定 n 个数,一个数 k,然后你知道一个数 x 取模这个 n 个的是几,最后问你取模 k,是几. 析:首先题意就看了好久,其实并不难,我们只要能从 n 个数的最小公倍数是 k的倍数即可,想想为 ...

  8. C++ 类 & 对象-类成员函数-类访问修饰符-C++ 友元函数-构造函数 & 析构函数-C++ 拷贝构造函数

    C++ 类成员函数 成员函数可以定义在类定义内部,或者单独使用范围解析运算符 :: 来定义. 需要强调一点,在 :: 运算符之前必须使用类名.调用成员函数是在对象上使用点运算符(.),这样它就能操作与 ...

  9. 企业搜索引擎开发之连接器connector(二十四)

    本人在上文中提到,连接器实现了两种事件依赖的机制 ,其一是我们手动操作连接器实例时:其二是由连接器的自动更新机制 上文中分析了连接器的自动更新机制,即定时器执行定时任务 那么,如果我们手动操作连接器实 ...

  10. [label][webSites]一个结合Google地图的图片浏览网站

    内容中包含 base64string 图片造成字符过多,拒绝显示