Python 读写excel文件
admin
2023-07-31 01:46:53
0

最近需要用到Python来操作excel表,读取表格内容到数据库。所以就搜索了相关资料。
查找了一下,可以操作excel表的几个库有以下几个:

  • openpyxl
    这个是推荐使用的库,可以读写Excel 2010以上格式,以.xlsx结尾的文件。

  • xlsxwriter
    这个支持.xlsx,但是只支持写入,格式化等操作,不支持读取。

  • xlrd
    这个支持读取数据,支持以xls结尾的文件,也就是比较老的格式。

  • xlwt
    这个和上面的相对应,支持写入书和格式化数据,支持xls结尾的文件格式。

  • xlutils
    这个是整合了xlrd和xlwt两个库的功能。

经过对比我还是选择了openpyxl这个库,下面针对这个库的使用进行说明

以下参考官方文档

  • 创建一个工作簿

from openpyxl import Workbook
wb = Workbook()
ws = wb.active             #默认创建第一个表,默认名字为sheet
ws1 = wb.create_sheet()    #创建第二个表
ws1.title = \"New Title\"    #为第二个表设置名字
ws2 = wb.get_sheet_by_name(
New Title\")                #通过名字获取表,和第二个表示一个表
ws1.save(\'your_name.xlsx\') #保存
  • 读取一个工作簿中的内容

 from openpyxl import load_workbook
 wb = load_workbook(\'myname.xlsx\')  #加载一个工作簿
 print wb.get_sheet_names()         #获取各个sheet的名字
  • 简单的用法

from openpyxl import Workbook
from openpyxl.compat import range
from openpyxl.cell import get_column_letter
wb = Workbook()
dest_filename = \'empty_book.xlsx\'
ws1 = wb.active              #第一个表
ws1.title = \"range names\"    #第一个表命名
#遍历第一个表的1到39行,每行赋值从1到599.
for row in range(1,40):
    ws1.append(range(600))
ws2 = wb.create_sheet(title=\"Pi\") # 创建第二个表
ws2[\'F5\'] = 3.14     #为第二个表的F5单元格赋值为3.14
ws3 = wb.create_sheet(title=\"Data\")  #创建第三个表
 /* 下面遍历第三个表的10到19行,27到53列,并对每一行的单元格赋一个当前列名的名字如下图 */
for row in range(10,20):
    for col in range(27,54):
        _=ws3.cell(column=col,row=row,value=\"%s\" % get_column_letter(col)) #_当作一个普通的变量,一般表示后边不再使用
wb.save(filename=dest_filename) #保存

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
项目管理和工程管理的区别 项目管理 项目管理,顾名思义就是专注于开发和完成项目的管理,以实现目标并满足成功标准和项目要求。 工...