zoukankan      html  css  js  c++  java
  • openpyxl一点心得

    先上代码

    from openpyxl import workbook,load_workbook
    class HomeWork():
        def creat_xlsx(self):
            """
            创建excel文件在当前目录
            :return:
            """
            wb = workbook.Workbook()
            ws = wb.active
            ws.title = "homework_sheet"
            list = ("床前明月光","疑是地上霜","举头望明月","低头思故乡")
            for i in range(1,5):
                ws.cell(1,i).value = list[i-1]
    
            list1 = ("锄禾日当午","汗滴禾下土","谁知盘中餐","粒粒皆辛苦")
            for i in range(1,5):
                ws.cell(2,i).value = list1[i-1]
    
            wb.save("HomeWork.xlsx")
            wb.close()
        def read_xlsx(self,xlsx = "HomeWork.xlsx",ws = "homework_sheet"):
            """
            读取excel文件中数据并整理成列表返回
            :param xlsx:
            :param ws:
            :return:
            """
            wb = load_workbook(xlsx)
            ws = wb.get_sheet_by_name(ws)
            list = []
            list1 = []
            for i in range(1,ws.max_row+1):
                for j in range(1,ws.max_column+1):
                        str = ws.cell(i,j).value
                        list.append(str)
                list1.append(list.copy())
                list.clear()
            wb.close()
            return list1
        def edit_xlsx(self,xlsx_row = None,xlsx_column= None,xlsx_str= None,xlsx = "HomeWork.xlsx",ws = "homework_sheet"):
            """
            在指定位置写入数据
            :param xlsx:
            :param ws:
            :return:
            """
            wb = load_workbook(xlsx)
            ws = wb.get_sheet_by_name(ws)
            ws.cell(xlsx_row,xlsx_column).value = xlsx_str
            wb.save(xlsx)
            wb.close()
    if __name__ == "__main__":
        homework = HomeWork()
        # 创建文件
        homework.creat_xlsx()
        # 读取文件并整理
        read_list = homework.read_xlsx()
        print(read_list)
        #写入
        i = int(input("请输入你要编辑的行数:"))
        j = int(input("请输入你要编辑的列数:"))
        str = input("请输入你要替换的数据:")
        homework.edit_xlsx(i,j,str)
    

      从创建到读写都涉及到的三组方法,相关的用法百度很多,就不一一说明了。

      注意点三处:

            1.文件创建/读/写的最后都不要忘记save和close,不然很可能吃力不讨好

            2.出现Permission denied报错不要慌张,如果是windows平台,第一时间查看文件是否手动打开了,然后查看写入的数据格式是否正确;如果是linux平台或者类似平台,可以手动赋予权限

            3.打开/创建的文件名需要带后缀,并且后缀一定要是xlsx,不然会出现文件无法识别的报错

            4.如果不是汉字而是输出其他类型内容,比如字典、列表或者元祖,可以使用eval(str)来转换

  • 相关阅读:
    反射前序------类加载器(ClsaaLoader)的简单讲述
    反射前序------简述类加载的过程
    反射前序------静态语言和动态语言简述以及java语言的特性
    AJAX的原生和JQuery的实现方式
    JQuery
    会话技术------服务器技术session
    冒泡排序
    Git(二)
    Git教程
    Re库使用(正则表达式)
  • 原文地址:https://www.cnblogs.com/keima/p/10535952.html
Copyright © 2011-2022 走看看