massringo
massringo
采纳率33.3%
2021-03-04 14:20

使用xlwings筛选excel表格,报错元祖没有range 属性

5
已结题

import xlwings
import pandas
import datetime

# 启动excel程序
app = xlwings.App(visible=True, add_book=False)
# 打开’1.csv‘
workbook = app.books.open(r'D:\公司\逾期\1.csv')
worksheet = workbook.sheets

# 创建一个空DataFrame
table = pandas.DataFrame()

# 遍历当前工作表
for j in enumerate(worksheet):
    # 读取当前工作表数据
    values = j.range('A1').options(pandas.DataFrame, header=1, index=False, expand='table').value
    # 将数据合并到前面创建的DataFrame中
    table = table.append(data, ignore_index=True)

# 筛选’当前连续逾期天数‘是'1'的数据
aDay = table[table['当前连续逾期天数'] == '1']

someDay = table[table['当前连续逾期天数'] > '1']
#
# # 获取当天日期
# today=datetime.date.today()
#
# 打开’扫码付逾期‘表格
wbExcel = app.books.open(r'D:\公司\逾期\扫码付逾期.xlsx')
# 在’扫码付逾期‘表里新增工作表,以当天日期作为工作表名
nWorksheet = wbExcel.sheets.add(today)
# 在新工作表中写入筛选值为1的数据
nWorksheet['A1'].options(index=False).value = aDay
# 获取当前工作表数据区域右下角的单元格
lastCell = nWorksheet('A1').expand('table').last_cell
# 获取数据区域最后一行的行号
lastRow = lastCell.row()
# 在新工作表中写筛选值大于1的数据
nWorksheet[str[lastRow] + '3'].options(index=False).value = someDay
wbExcel.save()
app.quit()
  • 点赞
  • 收藏
  • 复制链接分享

3条回答

  • jslang 天际的海浪 1月前

    for j in enumerate(worksheet):
    改成

    for i,j in enumerate(worksheet):
    或者
    for j in worksheet:
     

    点赞 1 评论 复制链接分享
  • ProfSnail ProfSnail 1月前

    enumerate返回的是一个元组,(下标,内容)。

    你可以改为j[1],表示内容。

    其实你可以for j in worksheet:就行。

    点赞 评论 复制链接分享
  • u014215839 漠上刀栈 1月前

    xlwings版本更新一下。

    点赞 评论 复制链接分享