美文网首页
读取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