qq_29217127 2021-07-11 16:03 采纳率: 70%
浏览 192
已结题

如何用openpyxl读取表格内容,再将获取的内容保存为.txt文件

我在使用load_workbook()读取excel获取内容后,再将内容保存为txt文件时遇到下面这栏报错
File "D:/python/excel_py.py", line 58, in sdx
yr = open('C:\iyb\ty.txt', 'w',
TypeError: load_workbook() got an unexpected keyword argument 'encoding'

代码如下

# -*- coding: utf-8 -*-
from openpyxl import *
from openpyxl.utils import get_column_letter, column_index_from_string




def excel_cellname():
    wb = load_workbook('C:/Users/USER/Desktop/20210709.xlsx')
    ws = wb.active
    maxRow = ws.max_row  # 获取最大行数
    maxColumn = ws.max_column  # 获取最大列数
    # print(ws['B3'].value)
    # print(maxRow, range(maxColumn))
    data_hang = []
    char = []
    charrow = []
    if maxRow > 2 and maxColumn > 2:
        for i in range(maxRow):
            for j in range(maxColumn):
                try:
                    if ws.cell(i, j).value != None:
                        char.append(j)
                        # print(ws.cell(i,j).value)
                        if ws.cell(i, j).value == "jk" and ws.cell(i, j + 1).value != None:
                            # print(i, j)
                            # print(ws.cell(i, j))
                            charrow.append(i)
                            data_hang.append(ws.cell(i, j + 2).value.replace("\n", ""))
                except:
                    pass

                    # continue
    # print(data_hang)
    print(charrow)
    print(get_column_letter(max(char)))
    print(get_column_letter(min(char) + 1))
    Cellmin = get_column_letter(min(char) + 1)
    Cellmax = get_column_letter(max(char))
    # print(ws["A1:D10"])
    charname = []
    for cr in charrow:
        # print(ws['B' + str(cr) + ':' + 'G' + str(cr)])
        for sw in ws[Cellmin + str(cr) + ':' + Cellmax + str(cr)]:
            for wf in sw:
                if wf.value != None:
                    # print(wf.value.replace("\n", ""))
                    charname.append(wf.value.replace("\n", ""))
    sdd = "\n".join(charname)
    er = sdd.replace("\n", "")
    qe = er.replace(" ", "")
    return qe


def sdx():
    xc = excel_cellname()
    print(xc)
    yr = open('C:\\iyb\\ty.txt', 'w',
              encoding='UTF-8')
    yr.write(xc)
    yr.flush()
sdx()
  • 写回答

1条回答 默认 最新

  • 江天暮雪丨 2021-07-12 09:41
    关注

    TypeError: load_workbook() got an unexpected keyword argument 'encoding'
    意思是load_workbook()这个函数不接收参数:encoding,去掉就行了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月27日
  • 已采纳回答 9月19日
  • 修改了问题 7月11日
  • 创建了问题 7月11日

悬赏问题

  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64
  • ¥15 iOS 自定义输入法-第三方输入法
  • ¥15 很想要一个很好的答案或提示
  • ¥15 扫描项目中发现AndroidOS.Agent、Android/SmsThief.LI!tr
  • ¥15 怀疑手机被监控,请问怎么解决和防止
  • ¥15 Qt下使用tcp获取数据的详细操作
  • ¥15 idea右下角设置编码是灰色的