美文网首页
读取excel表格中任意单元格内容,转DataFrame保存为e

读取excel表格中任意单元格内容,转DataFrame保存为e

作者: 田福成 | 来源:发表于2020-04-30 08:04 被阅读0次

    需要读取excel中相对固定板式的数据内容,转化成标准表格数据进行数据处理,收集了各种处理方式,合并起来,形成了一个处理过程,分享给大家。

    import xlrd

    import os

    import pandas as pd

    #检查是否数字

    def is_number(s):

        try:

            float(s)

            return True

        except ValueError:

            pass

        try:

            import unicodedata

            unicodedata.numeric(s)

            return True

        except (TypeError, ValueError):

            pass

        return False

    #获取文档内容

    def file_add(file):

        file_path = file #'/Users/tianfch/data-analysis_new/tianfch/wangyan/SC-W7252-HOBSON.xlsx'

        #读取指定excel文件

        book = xlrd.open_workbook(file_path)

        #获取第一个sheets页内容

        sheet1 = book.sheets()[0]

        ##===========================减去头部行数,避免下标越界==============================##

        #总行数去掉头部行数

        nrows = sheet1.nrows - 19

        ##===========================开始读的位置==============================##

        #从表格18行开始处理

        num1 = 18

        #初始化存放数据

        ls_filedata = []

        #读取表格18行后订单内容

        #从0开始循环

        x = 0

        for x in range(x,nrows):

            x += 1

            #从表格21行处往后读

            num = num1+x

            #直到出现非数字单元格中止

            if len(sheet1.cell_value(num,1)) >0 :

                #将每行数据放入

                ls = sheet1.cell_value(5,20),sheet1.cell_value(6,20),sheet1.cell_value(num,0),sheet1.cell_value(num,1),sheet1.cell_value(num,5),sheet1.cell_value(num,18),sheet1.cell_value(num,19),sheet1.cell_value(num,20),sheet1.cell_value(num,24),sheet1.cell_value(num,26)

                ls_filedata.append(ls)

        ls_df = pd.DataFrame(ls_filedata)

        return ls_df

    #提取文件夹下的地址+文件名,源文件设定排序规则

    def file_name(file_dir):

        L = []

        for root, dirs, files in os.walk(file_dir):

            for file in files:

                #读取文件后缀xlsx

                if os.path.splitext(file)[1] == '.xlsx':

                    L.append(os.path.join(root , file))

        return L

        ##===========================开始处理文件==============================##

    #读取指定路径下的文件

    fileread_path = '/Users/tianfch/data-analysis_new/tianfch/wangyan/new/'

    #处理完后保存路径下的文件

    filerwriter_path = "/Users/tianfch/data-analysis_new/tianfch/wangyan的归档文件2.0.xlsx"

    file_list = file_name(fileread_path)

    #

    file_count = len(file_list)

    #初始化存放数据

    file_data = []

    # 表格头

    ls = 'PO NO:','DATE:','PO NO','SC NO','CODE','QUANTITY','PRICE','AMOUNT','N.W','G.W'

    #将表格头放入

    file_data.append(ls)

    file_data = pd.DataFrame(file_data)

    #循环处理文件

    x=0

    for x in range(x,file_count):

    #    print(file_count)

        file = file_list[x]

    #    print(file)

        ls = file_add(file)

        file_data = pd.concat([file_data,ls],axis=0)

        x += 1

    #保存文件到指定目录下

    df = pd.DataFrame(file_data)

    df.to_excel(filerwriter_path,index = False)

    相关文章

      网友评论

          本文标题:读取excel表格中任意单元格内容,转DataFrame保存为e

          本文链接:https://www.haomeiwen.com/subject/gqpawhtx.html