Python:打开现有的 Excel 文件并计算工作表中的行数

标签 python excel count rows xlrd

我有一个现有的 Excel 文件。我想加载那个并获取此工作表中的行数,稍后写入此工作表的下一行并再次保存。我收到以下错误消息:

AttributeError: 'Worksheet' object has no attribute 'nrows'

但显然存在这种方法,因为每个人都在使用它来获取计数。 我写的代码是这样的:

def write_xls_result(test_case):
    testCase = re.sub("/", "_", test_case)
    automation_report = os.path.expanduser("~/Library/pathtofile/UITests.xctest/Contents/Resources/Automation_Result.xls")
    if os.path.isfile(automation_report):

        w = copy(open_workbook(automation_report))
        copy_sheet = w.get_sheet(0)
        col_width = 256 * 30

        try:
            for i in itertools.count():
                copy_sheet.col(i).width = col_width
        except ValueError:
            pass

        for row in range(copy_sheet.nrows):
             print '{} {}'.format("Row COUNT",copy_sheet.nrows)

        row_index = 10
        copy_sheet.write(row_index,0, testCase)
        w.save('Automation_Result.xls')
        row_index += 1
        print '{} {}'.format("RRRROOOOWWWWW",row_index)

    else:

所以我也尝试了一种不同的方法:

def write_xls_result(test_case):
    testCase = re.sub("/", "_", test_case)
    automation_report = os.path.expanduser("~/Library/pathtofile/UITests.xctest/Contents/Resources/Automation_Result.xls")
    if os.path.isfile(automation_report):
        workbook = xlrd.open_workbook(automation_report)
        result_sheet = workbook.get_sheet(0)
        rowcount = result_sheet.nrows
        print '{} {}'.format("Row COUNT",rowcount)

        col_width = 256 * 30

        try:
            for i in itertools.count():
                result_sheet.col(i).width = col_width
        except ValueError:
            pass

        row_index = 10
        result_sheet.write(row_index,0, testCase)
        workbook.save('Automation_Result.xls')
        row_index += 1
        print '{} {}'.format("RRRROOOOWWWWW",row_index)

    else:

我得到这个错误:

raise XLRDError("Can't load sheets after releasing resources.")
xlrd.biffh.XLRDError: Can't load sheets after releasing resources.

我对 python 还是个新手,也许我只是做错了什么。一些帮助或提示会很好。 谢谢

最佳答案

您的顶级代码要么运行方式不同,要么缺少 xlrd.open_workbookxlrd 部分...

您可以使用以下方法获取没有该错误的result_sheet:

result_sheet = workbook.sheet_by_index(0)

(我在尝试 .get_sheet 时遇到错误)

你用的是什么库?只是xlrd?我没有看到列的 .width 属性(至少在我的示例中,它是 list 类型),并且不确定您对该部分做了什么无论如何代码。

你总是想把找到的行数写到第 10 行吗?该数字永远不会以功能方式索引,else 之前的最后一行始终打印 11

关于Python:打开现有的 Excel 文件并计算工作表中的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23088864/

相关文章:

Mysql 计数不同的结果

Python - 将 JSON 对象转换为字典

python - Python中两个Aruco标记之间的距离?

python - 如何在pygame中显示由点组成的圆圈?

sql-server - 从 Excel 中选择时出现 Microsoft.ACE.OLEDB.12.0 文本截断错误

python - 使用正则表达式在 Python 中进行字数统计

python - 在python中创建一个临时表以与sql表连接

excel - 识别发生特定模式更改的行

excel - 从 Excel 到 Word 表格中的特定单元格

count - Qlik 从多个字段中获取不同的计数