溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python如何提取Excel的數(shù)據(jù)?

發(fā)布時(shí)間:2020-05-25 16:29:50 來源:億速云 閱讀:274 作者:鴿子 欄目:系統(tǒng)運(yùn)維

最近發(fā)現(xiàn)excel數(shù)據(jù)量極大,并且通過簡單的數(shù)據(jù)操作不能提取到我需要的數(shù)據(jù),如果單獨(dú)操作,數(shù)據(jù)量太大耗時(shí)太長。
想著通過簡單的方式,并且快速提取數(shù)據(jù),就想到了Python。
python操作Excel使用的openyxl和pandas對(duì)Excel進(jìn)行操作。
代碼如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2020-02-24 下午 03:43
# @Author  : Zhanxing
# @Site    :
# @File    : 提取字段.py
# @Software: PyCharm

import openpyxl
import pandas as pd
from xlutils.copy import copy
df=pd.read_excel('222.xlsx',sheet_name='XXX')

data=(df[['XXX','XXX']])
data.to_excel("new.xlsx", index=False)

class Excel:
    def __init__(self, excel_file):
        self.excel = openpyxl.load_workbook(excel_file)
        self.sheet_name = self.excel.get_sheet_names()
        self.sheet = self.excel.get_sheet_by_name(self.sheet_name[0])

    def excel_read(self):
        """
        返回excel每一行的生成器對(duì)象
        :return:
        """
        yield from self.sheet.iter_rows(min_row=2)

def run(excel_file, new_excel):
    """
    :param excel_file: 要處理的excel的路徑
    :param new_excel:  處理后要保存的文件名
    :return:
    """
    excel = Excel(excel_file)
    excel_line = [line for line in excel.excel_read()]
    for line in excel_line:
        for cell in line:
            if isinstance(cell.value, int):
                continue
            people_name = cell.value.strip('[]').split(',')
            for num in range(len(people_name)):
                if 'XX' in people_name[num]:
                    excel.sheet.cell(row=cell.row, column=cell.column, value=people_name[num])
                    break
    excel.excel.save(new_excel)

if __name__ == '__main__':
    run('new.xlsx','11.xlsx')

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI