python 提取excel的某几列的数据

python 提取excel的某几列的数据,

提取3个列的数据。3个列的数据生成了3个列表。每个列表里面有1000个数据。

我需要把这3个数据按照每个100行切割生成10个excel文件。

3个列的数据按100行数切割生成excel文件。

import pandas as pd

file_name = r"new.xlsx"
df = pd.read_excel(file_name)

columns = ["a","c","e"]
df = df[columns]
print(df)

for i in range(10):
    df_tmp = df[i*100:(i+1)*100]
    df_tmp.to_csv("{}_{}.csv".format(file_name,i))

 

https://blog.csdn.net/qq_42738639/article/details/93381989   如果你搜索一下 csdn,就会发现这个博客以及其它很多文章。 

能使用 xlrd,xlsxwriter这2个库写吗?

按指定列读取数据,再按设定行数输出为excel,输出支持两种方式,一是,每列按行数生成excel,一是,所有列按行数生成excle。

import xlrd
import xlwt

def read(fileName,sheetname,columnList):
    '''
    读取exel
    fileName:excel文件名
    sheetname:分栏名
    columnList: 分栏列序号
    '''

    book = xlrd.open_workbook(fileName)#打开一个excel
    sheet = book.sheet_by_name(sheetname) #book.sheet_by_index(0)#根据顺序获取sheet
    
    data=[]
    for one in columnList:
        tmpData=sheet.col_values(one)
        data.append(tmpData)
    
    return data

    # print(sheet.cell(0,0).value) #指定行列
    # print(sheet.ncols)#获取excel里面有多少列
    # print(sheet.nrows)#获取excel里面有多少行
    # print(sheet.row_values(0))#获取第一行
    # print(sheet.col_values(1))#取第一列的数据
    # print(sheet.get_rows())#获取所有行数据

    # for row in range(sheet.nrows):  #获取行数
    #     if row==0:
    #         continue
    #     url=sheet.cell(row,0).value
    #     print(url)


def write(data,rowSzie,state=0):
    '''
    data:二维数据
    rowSize:多少行拆成一个excel文件
    state:根据rowSize,所有列合成一个excel, 0为false  1为true
    '''

    if state==0:  #各列按行数独立输出为excle
        for index,one in enumerate(data):
            dataTmp=[]
            for indexTmp,oneData in enumerate(one):
                dataTmp.append(oneData)
                if len(dataTmp)==rowSzie:
                    book = xlwt.Workbook()#新建一个excel
                    sheet = book.add_sheet("测试")#添加一个sheet页

                    for row,tmp in enumerate(dataTmp):
                        sheet.write(row,0,tmp)
                    
                    book.save(str(indexTmp)+"-"+str(index)+".xls")
                    dataTmp=[]
    
    else: #所有列合并后,按行数输出为excle
        intLen=len(data)
        data=map(list,zip(*data))  #行转列
        dataTmp=[]
        for index,one in enumerate(data):
            dataTmp.append(one)
            if len(dataTmp)==rowSzie:
                book = xlwt.Workbook()#新建一个excel
                sheet = book.add_sheet("测试")#添加一个sheet页
                for index in range(rowSzie):
                    for lenIndex in range(intLen):
                        sheet.write(index,lenIndex,dataTmp[index][lenIndex])
                
                book.save(str(index)+".xls")
                dataTmp=[]

def deal():
    file="./demo.xlsx"
    data=read(file,"one",[0,1,2])

    rowSzie=2
    write(data,rowSzie,state=0)


if __name__ == "__main__":
    deal()