基于Python实现excel表格读写

首先安装对应的xlrd和xlwt

打开cmd命令窗口输入pip install xlrd和pip install xlwt就可以安装。之后输入pip list检查是否成功配置:

xlrd操作#

接下来就是常用的语法操作:

excel_data = xlrd.open_workbook(文件路径’) #得到对应的工作表

sheet = excel_data.sheets()[工作表序号] #得到对应工作表中的某一个表格

sheet.row_values(2)#对应的某一行的数据

sheet.cell(6,1).value#对应某一列的数据

以该表格为例先试一下对应的语句:

先指定对应的表格和其中的某一个表,否则会提示出错编译不通过。将以上代码运行得到:

源码如下:

import xlrd
import xlwt
excel_data = xlrd.open_workbook(文件路径')
excel_data = xlrd.open_workbook(r'C:Usershys macDesktop实用的excel表格模板.xls')
sheet = excel_data.sheets()[工作表序号]
sheet = excel_data.sheets()[0]
print(sheet.row_values(2)) #打印某一行数据
print(sheet.col_values(1))#打印某一列
print( )
print ( sheet.cell(6,1).value)#打印某个具体值

运行结果如下:

对比表格得到一些值得注意的地方,指定的行数列数是从0开始,打开指定的表格时要注意绝对路径时要连同文件名和文件后缀也要带上才能成功读取数据。

接下来实验读取指定的某个单元格的数据:

sheet.cell(行,列).value

运行得到:

对比表格得到数据:

是其中的(7,B),和之前提到的从零开始计数是一致的。

除了以上列举的一些操作外还有其他的常见语句可以在相关文档和官网中查看,文末有相关链接,接下来实验另一个xlwt库以实现对excel表格的写入操作。

xlwt操作#

对于excel表格一般关心的问题在于以下几个方面:

  • 创建工作薄和表
  • 写入单元格
  • 常见格式设置(货币文本等)
  • 创建公式
  • 保存

接下来依次尝试以上提到的各个功能:

  1. 工作薄和表对应的对象为:workbook,sheet

2.单元格赋值:

这里尝试了一下采用负数

编译没有问题留作后面保存后检查结果是否正确。

3.格式设置:

可见对应传入参数除行列和值外还包括style这一默认省略的参数。这里试验设置的格式为加粗。其他格式可以参照查找文末文档实现。这里有一些常见得其他格式:

style = easyxf(num_format_str='$#,##0.00')
# or set it directly on the style object
style = easyxf('font: bold 1')
style.num_format_str = '$#,##0.00'
sheet.write(0, 0, '100.00', style)

4.创建公式:

使用xlwt.Formula可以实现Excel公式。

        sheet.write(0, 0, xlwt.Formula('HYPERLINK("http://yujitomita.com"; "click me")'))

5.保存操作:

        workbook.save("Python.xls")
        wbk.save('路径名')    

这里值得提醒的是工作表的命名要小于31个字符且不能包括特殊字符(:。,等)。

运行结果:

按照之前的坑(-1,0)这里试运行结果:

# encoding : utf-8  import xlrd import xlwt
workbook = xlwt.Workbook()  sheet = workbook.add_sheet("Sheet 1") 
#创建工作簿(workbook)和工作表(sheet)
sheet.write(-1, 0, 'Python')#行列对应
style = xlwt.easyxf('font: bold 1') sheet.write(1, 1, 'style ', style)
workbook.save('C:Usershys macDesktopmr.cpython.xls') 

报错结果如下:

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated UXXXXXXXX escape

遇到了文件编码的问题,修改后一句:

workbook.save(r'C:Usershys macDesktopmr.cpython.xls')          

就回到了一开始留下的坑,单元格赋值规则应该与使用习惯一致不能为负数。最后修改得到:

import xlrd import xlwt
workbook = xlwt.Workbook()  sheet = workbook.add_sheet("Sheet 1") 
#创建工作簿(workbook)和工作表(sheet)
sheet.write(1, 0, 'Python')#行列对应
style = xlwt.easyxf('font: bold 1') sheet.write(1, 1, 'style ', style)
workbook.save(r'C:Usershys macDesktopmr.cpython1.xls')  #文件路径要存在且不能同名

结语和资料:

到这里这两个excel处理的模块操作基本结束了,还有其他实现相关功能的模块例如 openpyxl和win32com等有机会再写一篇作为横向对比的博文。 https://www.zhihu.com/people/dou-wo-45 知乎传送门欢迎留言交流。创作不易,保留权利。python学习交流群:125240963

Python_博客园责编内容来自:Python_博客园 (源链) | 更多关于

阅读提示:酷辣虫无法对本内容的真实性提供任何保证,请自行验证并承担相关的风险与后果!
本站遵循[CC BY-NC-SA 4.0]。如您有版权、意见投诉等问题,请通过eMail联系我们处理。
酷辣虫 » 综合编程 » 基于Python实现excel表格读写

喜欢 (0)or分享给?

专业 x 专注 x 聚合 x 分享 CC BY-NC-SA 4.0

使用声明 | 英豪名录