python如何处理表格用什么库,python如何处理表格

  python如何处理表格用什么库,python如何处理表格

  

  python如何处理表格?

  python处理表格的方法:

  Python excel主要使用xlrd和xlwt两个库,即xlrd是读取excel的库,xlwt是写入excel的库。你可以从这里下载https://pypi.python.org/pypi。下面分别记录python读写excel。

  编写Python excel——xlwt

  写Python excel的难点不在于工作簿本身的构造,而在于填充的数据,但这个不在范围之内。写excel也有棘手的问题。比如写合并单元格就比较麻烦,而且有不同的写法。

  详细代码如下:

  导入xlwt

  #设置表格样式

  def set_style(名称,高度,粗体=False):

  style=xlwt。XFStyle()

  font=xlwt。字体()

  font.name=name

  font.bold=bold

  font.color_index=4

  font.height=高度

  style.font=font

  返回样式

  #编写Excel

  def write_excel():

  f=xlwt。工作簿()

  Sheet1=f.add_sheet (student ,cell_overwrite_ok=True)

  Row0=[姓名,年龄,出生日期,爱好]

  column 0=[张三,李四,爱蟒,小明,小红,未知]

  sheet1.write(0,I,row0[i],set_style(Times New Roman ,220,True))

  #写第一列

  对于范围(0,len(column 0)):内的I

  sheet1.write(i 1,0,column 0[I],set_style(Times New Roman ,220,True))

  sheet 1 . write(2006年12月12日1月3日)

  Sheet.write _ merge (6,6,1,3, unknown) #合并行单元格

  1.sheet _ write _ merge (1,2,3,3,玩游戏)#合并列单元格

  1.sheet _ write _ merge (4,5,3,3,打篮球)

  保存( test.xls )

  if __name__==__main__:

  Write_excel()结果图表:

  这里稍微解释一下write_merge()的用法,比如上面:sheet1.write_merge(1,2,3,3,打游戏),即第二列和第三列合并成四列,合并后的单元格内容为合计,并设置样式。其中,里面所有的参数都是从0开始计算的。

  阅读Python excel——xlrd

  与xlwt相比,xlrd提供了更多读取Excel表格的接口,但在过程中也存在一些麻烦的问题,比如读取日期和合并单元格的内容。

  我们先来看看基本操作:

  总体思路是打开文件,选择表格,读取行和列的内容,读取表格中的数据。

  详细代码如下:

  导入xlrd

  从日期时间导入日期,日期时间

  file=test3.xlsx

  def read_excel():

  WB=xlrd . Open _ workbook(filename=file)#打开文件

  Print(wb.sheet_names())#获取所有表格名称

  1=wb.sheet _ by _ index (0) #按索引获取表格

  sheet=WB . sheet _ by _ name( grade )#按名称获取表单

  打印(第一页,第二页)

  print(sheet1.name,sheet1.nrows,sheet1.ncols)

  Rows=sheet1.row_values(2)#获取行内容

  Col=sheet1.col _ values (3) #获取列内容

  打印(行)

  打印(列)

  Print(sheet1.cell(1,0))。value)#通过三种方式获取表格的内容

  print(sheet1.cell_value(1,0))

  Print(sheet1.row(1)[0]。值)运行如下:

  那么问题来了。上面运行结果中红框的字段明明是出生日期,实际能显示的浮点数;同时,合并后的单元格中应该有内容,结果不能为空。

  别急,让我们逐一解决这两个问题:

  1.1.python将excel中单元格的内容作为日期读取的方式

  在python excel中读取单元格的内容有五种类型的返回,即上例中的ctype:

  ctype : 0空,1个字符串,2个数字,3个日期,4个布尔值,5个错误

  即date=3的ctype。此时需要使用xlrd的xldate_as_tuple将其处理成日期格式。只有当表的ctype确定为3时,xldate才能开始运行。

  详细代码如下:

  导入xlrd

  从日期时间导入日期,日期时间

  print(sheet1.cell(1,2)。ctype)

  date _ value=xlrd . XL date _ as _ tuple(sheet 1 . cell _ value(1,2),wb.datemode)

  打印(日期值)

  打印(日期(*日期值[:3])

  打印(日期(*日期值[:3])。strftime(%Y/%m/%d ))

  2.获取合并单元格的内容

  在操作之前,我们先介绍一下merged_cells()的用法。merged_cells返回的这四个参数的含义是:(row,row_range,col,col_range),其中[row,row_range]包括row但不包括row_range,col相同,即(1,3,4)

  详细代码如下:

  print(sheet 1 . merged _ cells)print(sheet 1 . cell _ value(1,3))

  print(sheet1.cell_value(4,3))

  print(sheet1.cell_value(6,1))

  找到规律了吗?可以,只需获取merge_cells返回的row和col低位的索引!所以你可以像这样分批得到它:

  详细代码如下:

  merge=[]

  打印(sheet1.merged_cells)

  sheet1.merged_cells:中的for (rlow,rhigh,clow,chigh)

  merge.append([rlow,clow])

  对于merge:中的索引

  print(sheet 1 . cell _ value(index[0],index [1])的运行结果如下:

  推荐教程:以上《python》是python如何处理表格的?更多详情请关注盛行IT软件开发工作室的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: