Maison  >  Article  >  développement back-end  >  Comment Python gère-t-il les tables ?

Comment Python gère-t-il les tables ?

coldplay.xixi
coldplay.xixioriginal
2020-06-10 15:37:597227parcourir

Comment Python gère-t-il les tables ?

Comment python gère-t-il les tables ?

Comment python gère les tableaux :

Python utilise principalement les deux bibliothèques xlrd et xlwt pour faire fonctionner Excel, c'est-à-dire que xlrd sert à lire Excel et xlwt est pour écrire une bibliothèque Excel. Il peut être téléchargé depuis https://pypi.python.org/pypi. Les enregistrements suivants enregistrent respectivement la lecture et l'écriture de Python sur Excel.

Écrire Excel en Python - xlwt

La difficulté d'écrire Excel en Python n'est pas la construction d'un classeur lui-même, mais les données renseignées, mais cela n'entre pas dans le cadre. Il existe également des problèmes épineux lors de l'écriture dans Excel. Par exemple, l'écriture de cellules fusionnées est plus délicate et il existe différents styles d'écriture.

Le code détaillé est le suivant :

import xlwt
#设置表格样式
def set_style(name,height,bold=False):
style = xlwt.XFStyle()
font = xlwt.Font()
font.name = name
font.bold = bold
font.color_index = 4
font.height = height
style.font = font
return style
#写Excel
def write_excel():
f = xlwt.Workbook()
sheet1 = f.add_sheet('学生',cell_overwrite_ok=True)
row0 = ["姓名","年龄","出生日期","爱好"]
colum0 = ["张三","李四","恋习Python","小明","小红","无名"]
sheet1.write(0,i,row0[i],set_style('Times New Roman',220,True))
#写第一列
for i in range(0,len(colum0)):
sheet1.write(i+1,0,colum0[i],set_style('Times New Roman',220,True))
sheet1.write(1,3,'2006/12/12')
sheet1.write_merge(6,6,1,3,'未知')#合并行单元格
sheet1.write_merge(1,2,3,3,'打游戏')#合并列单元格
sheet1.write_merge(4,5,3,3,'打篮球')
f.save('test.xls')
if __name__ == '__main__':
write_excel()

Image du résultat :

Comment Python gère-t-il les tables ?

Ici, l'utilisation de write_merge() est brièvement expliquée, comme ci-dessus :sheet1.write_merge(1,2,3,3,'playing games'), c'est-à-dire fusionner les 2e et 3e colonnes en quatre colonnes. Le contenu de la cellule fusionnée est "total" et le style est défini. Parmi eux, tous les paramètres sont calculés à partir de 0.

Python lit Excel - xlrd

Python lit les tableaux Excel. Par rapport à xlwt, xlrd fournit plus d'interfaces, mais le processus présente également plusieurs problèmes gênants, tels que la lecture de la date et la lecture du contenu des cellules fusionnées.

Regardons les opérations de base :

Comment Python gère-t-il les tables ?

L'idée générale est d'ouvrir le fichier, de sélectionner le tableau, de lire le contenu des lignes et des colonnes, et lisez les données dans le tableau

Le code détaillé est le suivant :

import xlrd
from datetime import date,datetime
file = 'test3.xlsx'
def read_excel():
wb = xlrd.open_workbook(filename=file)#打开文件
print(wb.sheet_names())#获取所有表格名字
sheet1 = wb.sheet_by_index(0)#通过索引获取表格
sheet2 = wb.sheet_by_name('年级')#通过名字获取表格
print(sheet1,sheet2)
print(sheet1.name,sheet1.nrows,sheet1.ncols)
rows = sheet1.row_values(2)#获取行内容
cols = sheet1.col_values(3)#获取列内容
print(rows)
print(cols)
print(sheet1.cell(1,0).value)#获取表格里的内容,三种方式
print(sheet1.cell_value(1,0))
print(sheet1.row(1)[0].value)

Le résultat d'exécution est le suivant :

Comment Python gère-t-il les tables ?

Alors la question est, dans le résultat ci-dessus, la case rouge Le champ est clairement la date de naissance et le nombre à virgule flottante réel qui peut être affiché en même temps, il devrait y avoir du contenu dans les cellules fusionnées et le résultat ; ne peut pas être vide.

Ne vous inquiétez pas, résolvons ces deux problèmes un par un :

1. Comment python lit le contenu de la cellule dans Excel sous forme de date

Python lit le contenu de la cellule dans excel Il existe 5 types de contenu de cellule renvoyés, à savoir le ctype dans l'exemple ci-dessus :

ctype : 0 vide, 1 chaîne, 2 nombres, 3 date, 4 booléen, 5 erreur

que est le ctype de date=3. Dans ce cas, vous devez utiliser le xldate_as_tuple de xlrd pour le traiter au format date. Ce n'est que lorsque le ctype=3 de la table est jugé que xldate peut démarrer l'opération.

Le code détaillé est le suivant :

import xlrd
from datetime import date,datetime
print(sheet1.cell(1,2).ctype)
date_value = xlrd.xldate_as_tuple(sheet1.cell_value(1,2),wb.datemode)
print(date_value)
print(date(*date_value[:3]))
print(date(*date_value[:3]).strftime('%Y/%m/%d'))

Comment Python gère-t-il les tables ?

2 Récupérez le contenu des cellules fusionnées

Avant d'opérer, introduisons merged_cells(. ) Utilisation, la signification des quatre paramètres renvoyés par merged_cells est : (row, row_range, col, col_range), où [row, row_range) inclut row, n'inclut pas row_range, et il en va de même pour col, c'est-à-dire ( 1, 3, 4, 5) La signification de (7, 8, 2, 5) est : fusionner les lignes 1 à 2 (à l'exclusion de 3), et la signification de (7, 8, 2, 5) est : fusionner les colonnes 2 à 4.

Le code détaillé est le suivant :

print(sheet1.merged_cells)print(sheet1.cell_value(1,3))
print(sheet1.cell_value(4,3))
print(sheet1.cell_value(6,1))

Comment Python gère-t-il les tables ?

Avez-vous trouvé le patron ? Oui, obtenez simplement l'indice faible de la ligne et du col renvoyé par merge_cells ! Vous pouvez donc l'obtenir par lots comme celui-ci :

Le code détaillé est le suivant :

merge = []
print(sheet1.merged_cells)
for (rlow,rhigh,clow,chigh) in sheet1.merged_cells:
merge.append([rlow,clow])
for index in merge:
print(sheet1.cell_value(index[0],index[1]))

Le résultat d'exécution est le même que sur l'image, comme suit :

Comment Python gère-t-il les tables ?

Tutoriel recommandé : 《python

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn