问题描述
使用函数 row_values 和 col_values 处理Excel文件:
import xlrd
/ pre>
workbook = xlrd.open_workbook(filename)
sheet_names = workbook.sheet_names()
在sheet_names中的sheet_name:
sheet = workbook.sheet_by_name(sheet_name)
#...
row_values = sheet.row_values(rownum)
#...
col_values = sheet.col_values(colnum)
例如,我将col_values列为。如果我在一些列中遇到空单元呢?例如,单元格(1,1)不为空,单元格(1,2)为空,单元格(1,3)不为空?如何检测单元格(1,2)是否为空?
这是真的,我得到一个空字符串的列表作为一个空单元格的值(对于生成Excel文件的大多数知名程序)?
解决方案您可以明确地检查
(xlrd.XL_CELL_EMPTY,xlrd.XL_CELL_BLANK)中的sheet.cell_type(rowno,colno)
,但文档的值将为u'
其中
而不是使用
row_values
,您也可以使用行(n)
它返回一个单元格
对象的列表,它们具有.value
和.cell_type
属性。I handle Excel files using the functions row_values and col_values:
import xlrd workbook = xlrd.open_workbook( filename ) sheet_names = workbook.sheet_names() for sheet_name in sheet_names: sheet = workbook.sheet_by_name( sheet_name ) # ... row_values = sheet.row_values( rownum ) # ... col_values = sheet.col_values( colnum )
For example, I get col_values as list. What if I meet an empty cell in some column? For example a cell (1,1) is not empty, a cell (1,2) is empty and a cell (1,3) is not empty? How can I detect that the cell (1,2) is empty?
Is this true that I get a list with an empty string as a value of an empty cell (for most well-known programs which generate Excel files)?
解决方案You could be explicit and check that
sheet.cell_type(rowno, colno) in (xlrd.XL_CELL_EMPTY, xlrd.XL_CELL_BLANK)
but the docs state the value will beu''
where those are the case anyway.Instead of using
row_values
, you could also userow(n)
which returns a list ofCell
objects which have.value
and.cell_type
attributes.这篇关于使用xlrd库读取Excel文件时如何检测单元格是否为空?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!