1. El módulo xlrd se usa principalmente para leer formularios de Excel, soportando xlsx y xls; xlwt se usa principalmente para escribir bibliotecas de Excel y leer
2. Tipos de datos en celdas de uso común
0, vacío (vacío); 1, cadena (texto); 2, número; 3, fecha; 4, booleano; 5, error; 6, en blanco (formulario en blanco)
Uso
1. Módulo de importación
importar xlrd
En segundo lugar, abra el archivo de Excel para leer los datos (el archivo se crea primero)
data = xlrd.open_workbook ('study.xls') # Nombre y ruta del archivo, si la ruta o el nombre del archivo tienen chino, agregue una r al frente para indicar el carácter nativo; por ejemplo, 'rLearn.xls'
Tres, operación del módulo xlrd
1. Funciones básicas
1.1. Abra el libro para obtener el objeto Libro
- xlrd.open_workbook (filename [, logfile, file_contents, ...]): abre el
nombre de archivo del archivo Excel : el nombre del archivo a ser operado (incluyendo la ruta y el nombre del archivo);
Si el nombre de archivo no existe, se informa un error FileNotFoundError;
si el nombre de archivo existe, el valor de retorno es el objeto xlrd.book.Book
1.2. Obtener todos los nombres de las hojas en el objeto Libro
- BookObject.sheet_names (): obtiene los nombres de todas las hojas y las muestra en una lista
1.3. Obtener todos los objetos de hoja en objeto Libro
-
BookObject.sheets (): obtiene todos los objetos de hoja y los muestra como una lista
-
BookObject.sheet_by_index (sheetx): Obtenga el objeto de hoja deseado
sheetx como valor de índice a través del índice de hoja , y el índice comienza desde 0;
si sheetx excede el rango del índice, se informa un Error IndexError;
si sheetx está dentro del rango del índice, el valor de retorno es xlrd.sheet Objeto de hoja -
BookObject.sheet_by_name (sheet_name): obtenga el objeto de hoja deseado por nombre de hoja
sheet_name es el nombre de la hoja;
si sheet_name no existe, se informa un error xlrd.biffh.XLRDError;
si sheet_name existe, el valor de retorno es el objeto xlrd.sheet.Sheet.
1.4 Determine si se importa una hoja en el objeto Libro
- BookObject.sheet_loaded (sheet_name_or_index): determine si la hoja se importó correctamente por el nombre o el índice de la hoja. El
valor de retorno es bool. Si el valor de retorno es True, significa que se ha importado; si el valor de retorno es False, no se ha importado.
1.5. Manipular filas en objeto Hoja
-
SheetObject.nrows: obtiene el número de filas válidas en una hoja
-
SheetObject.row_values (rowx [, start_colx = 0, end_colx = None]): obtenga los datos de la columna start_colx a la columna end_colx en rowx + 1 fila de la hoja, y el valor de retorno es una lista.
Si rowx está en el rango de índice, devuelva los datos en forma de lista;
si rowx no está en el rango de índice, se informa un Error IndexError -
SheetObject.row (rowx): Obtenga la unidad de fila rowx + 1 en la hoja, el valor de retorno es una lista; el
contenido de cada valor en la lista es: Tipo de unidad: datos de la unidad -
SheetObject.row_slice (rowx [, start_colx = 0, end_colx = None]): obtenga la unidad de rowx + 1 fila en la hoja de la columna start_colx a la columna end_colx en modo de división, el valor de retorno es una lista; el
contenido de cada valor en la lista es: unidad Tipo: datos de la unidad -
SheetObject.row_types (rowx [, start_colx = 0, end_colx = None]): obtenga el tipo de celda de rowx + 1 fila en la hoja de la columna start_colx a la columna end_colx, el valor de retorno es tipo array.array.
Tipo de unidad ctype: vacío es 0, cadena es 1, número es 2, fecha es 3, booleano es 4, error es 5 (izquierda es el tipo, derecha es el valor correspondiente del tipo); -
SheetObject.row_len (rowx): Obtenga la longitud de rowx + 1 fila en la hoja
rowx: índice de fila, el número de filas comienza desde 0 (0 significa la primera fila), parámetros requeridos;
start_colx: columna de inicio, significa tomar valores de la columna start_colx, incluido el valor de start_colx;
end_colx: columna final, significa Valor final de la columna End_colx, excluyendo el valor end_colx;
start_colx por defecto es 0, end_colx por defecto es Ninguno: significa tomar toda la fila de datos relacionados;
- SheetObject.get_rows (): obtiene un generador para todas las filas de una hoja
1.6. Operaciones de columna en objeto Hoja
-
SheetObject.ncols: obtiene el número de columnas válidas en una hoja
-
SheetObject.col_values (self, colx [, start_rowx = 0, end_rowx = None]): obtenga los datos de la fila start_rowx a la fila end_rowx de la columna colx + 1 en la hoja, y el valor de retorno es una lista.
-
SheetObject.col_slice (colx [, start_rowx = 0, end_rowx = None]): obtenga los datos de la fila start_rowx a la fila end_rowx de la columna colx + 1 en la hoja de forma dividida.
Los contenidos de cada valor en la lista son: Tipo de unidad: Datos de la unidad -
SheetObject.col_types (colx [, start_rowx = 0, end_rowx = None]): obtenga el tipo de celda de la columna colx + 1 en la hoja de la fila start_rowx a la fila end_rowx, el valor de retorno es una lista;
1.7 Realizar operaciones en las celdas del objeto Hoja
-
ShellObeject.cell (rowx, colx): obtenga el objeto de celda en rowx + 1 fila y colx + 1 columna de objeto de hoja, el valor de retorno es del tipo 'xlrd.sheet.Cell', y el formato del valor devuelto es "tipo de celda: celda Valor ".
-
ShellObject.cell_value (rowx, colx): obtiene los datos de celda de rowx + 1 row y colx + 1 column en el objeto de hoja, y el valor de retorno es el tipo del valor actual (como float, int, string ...);
-
ShellObject.cell_type (rowx, colx): obtenga el valor del tipo de datos de celda de rowx + 1 fila y colx + 1 columna en el objeto de hoja;
tipo de celda ctype: vacío es 0, cadena es 1, número es 2, fecha es 3, boolean es 4, el error es 5;
import xlrd
'' 'Open exce table' ''
wook_book = xlrd.open_workbook ('study.xls')
print (wook_book) #jResult: <xlrd.book.Book objeto en 0x000001DC91214B50>
'' '1, obtenga todos los nombres de las hojas '' '
sheet_names = wook_book.sheet_names ()
print (sheet_names) #Result: List [' people ',' animal ',' car ']
' '' 2, Get all or a cierta hoja de objeto '' '
' '' Get Todos los objetos de hoja '' '
sheet_object = wook_book.sheets ()
print (sheet_object) #RESULTS [<xlrd.sheet.Sheet object at
# 0x0000026F491C21C0>,
# <xlrd.sheet.Sheet object at 0x0000026F491C22E0>,
# <xlrd.sheet .Objeto de hoja en 0x0000026F491C22B0>] # Obtenga el
primer objeto de hoja por índice
sheet1_object = wook_book.sheet_by_index (0)
print (sheet1_object) # Obtenga el
primer objeto de hoja por nombre
sheet2_object = wook_book.sheet_by_name ('people')
print (sheet2_object)
'' '3. Determine si se ha importado una hoja' '' #Compruebe
si sheet1 se importa en
sheet1_is_load por índice = wook_book.sheet_loaded (sheet_name_or_index = 0)
print (sheet1_is_load) #Result: True
# Determine si sheet1 se importa por el nombre de la hoja
sheet1_name_is_load = wook_book.sheet_loaded (sheet_name_or_index = 'people')
print (sheet1_name_is_load) # El resultado es True o True
'' '4. Realice operaciones en el objeto de hoja: como el número de filas válidas, los datos de una fila de la columna n1 a n2, la unidad y el tipo de fila y la longitud de una fila. . . '' ' # Obtenga el
número de filas válidas en la hoja1 nrows: el número de filas
nrows = sheet1_object.nrows
print (nrows) # obtenga
los datos de la tercera fila en sheet1
all_row_values = sheet1_object.row_values (rowx = 2)
print (all_row_values) #get
some El valor de las primeras columnas a las primeras filas de la fila
row_values = sheet1_object.row_values (rowx = 2, start_colx = 1, end_colx = 3)
print (row_values) #Obtenga
el objeto de la unidad en la tercera fila de sheet1, que es el objeto de la unidad
row_object = sheet1_object.row (rowx = 2)
print (row_object) # Obtenga
la unidad de la fila 3 en sheet1
row_slice = sheet1_object.row_slice (rowx = 2)
print (row_slice) # Obtenga
el tipo de unidad de la fila 3 en sheet1
row_type = sheet1_object.row_types (rowx = 2)
print (row_type) # Obtiene
la longitud de la tercera fila en la hoja1
row_len = sheet1_object.row_len (rowx = 2)
print (row_len) # Obtenga
el generador de todas las filas en sheet1
row_generator = sheet1_object.get_rows ()
print (row_generator)
'' '5. Realizar operaciones en las columnas del objeto de hoja' '' #Obtener el
número de columnas válidas ncols en sheet1: el número de columnas
ncols = sheet1_object.ncols
print (ncols)
# obtener los datos en la columna 1 de sheet1
col_values = sheet1_object.col_values (colx = 1)
print (col_values)
col_value1 = sheet1_object.col_values (1,1,3)
print (col_value1) # Obtenga
la celda en la segunda columna de sheet1
col_silce = sheet1_object.col_slice (colx = 1)
print (col_silce ) # Obtenga
el tipo de celda de la segunda columna en sheet1
col_types = sheet1_object.col_types (colx = 1)
print (col_types)
'' '5. Realizar operaciones en las celdas en el objeto de hoja' ''
# Obtener el objeto de celda en fila + 1 fila y colx + 1 columna en
hoja1 cell_info = sheet1_object.cell (rowx = 1, colx = 2)
print ( cell_info)
print (type (cell_info)) # <class 'xlrd.sheet.Cell'>
#Obtenga el valor de celda de fila + 1 fila y columna colx + 1 en
sheet1 cell_value = sheet1_object.cell_value (rowx = 1, colx = 2)
print (cell_value)
# Obtenga el valor del tipo de celda de fila + 1 fila y columna colx + 1 en la hoja de hoja
cell_type = sheet1_object.cell_type (rowx = 1, colx = 2)
print (cell_type)