添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
  • 使用pandas得到总行数,比如10002行,分割表格的时候,要保留一行表头
  • 第一张表,是1-500行,第二张表是 501-1000,以此类推
  • 最后一张表应该是1000-10002行,生成的表格数量是10000/500+1,21张
  • 生成的表格按照顺序保存到一个目录中
  • 写一个函数,可以按照任意指定的分割数量进行分割。
  • #按行数分割表格函数
    #1.如果有有一个十万行表格,要录入系统,但是系统每次最多只能录入500行?
    #解决问题:
    #1.按照指定的行数分割表格
    #2.分割出来的表格按照序号命名
    import pandas as pd
    import os
    def SplitExcel(file,num):
        file_dir='result'   #创建目录
        if os.path.isdir(file_dir):
            os.rmdir(file_dir)
        else:
            os.mkdir(file_dir)
        n = 1
        row_list = []
        df = pd.DataFrame(pd.read_excel(file, sheet_name=0))
        row_num = int(df.shape[0])  # 获取行数
        if num >= row_num:  #如果分割行数大于总行数,报错
            raise Exception('too much!!')
            for i in list(range(num,row_num,num)):
                row_list.append(i)
            row_list.append(row_num)  # 得到完整列表
        except Exception as e:
            print (e)
        (name,ext)=os.path.splitext(file)  #获取文件名
        for m in row_list:
            filename=os.path.join(file_dir,name+'-' + str(n) + '.xlsx')
            if m <row_num:
                df_handle=df.iloc[m-num:m] #获取n行之前
                print (df_handle)
                df_handle.to_excel(filename , sheet_name='sheet1',index=False)
            elif m == int(row_num):
                remainder=int(int(row_num)%num) #余数
                df_handle=df.iloc[m-remainder:m] #获取最后不能整除的行
                df_handle.to_excel(filename , sheet_name='sheet1', index=False)
            n = n + 1
    if __name__=='__main__':
        file= 'result.xls'
        SplitExcel(file,num=10)
    

    一张83行的表格,去除表头,一共82行,按照10行分割,一共要获得9张表格,最后一张表格,应该只有两行,中间的表格,数据必须是连续的,