Excel 테이블에 대한 Python 작업

卡哇伊
풀어 주다: 2020-07-10 11:53:56
원래의
6773명이 탐색했습니다.

Python을 사용하여 Excel 테이블을 만드는 방법: 먼저 openpyxl 모듈을 사용하여 Excel 문서를 열고 행과 열의 셀 정보를 지정한 다음 [wb.sheetnames] 및 [wb.active]를 호출하여 통합 문서 세부 정보를 얻습니다. ; 마지막으로 Read 인덱스를 사용하여 Cell 객체를 얻습니다.

Excel 테이블에 대한 Python 작업

一 Python 및 Excel 테이블

Excel은 Windows 환경에서 인기 있고 강력한 스프레드시트 응용 프로그램입니다. openpyxl 모듈을 사용하면 Python 프로그램이 Excel 스프레드시트 파일을 읽고 수정할 수 있습니다.
1) Excel 문서의 기본 정의
- 워크북(workbook)
- 워크시트(sheet)
- 활성 시트(active sheet)
- 행(row) : 1, 2,3,4,5,6……..
- 컬럼: A, B, C, D……..
- 셀: B1, C1
2) python for Excel 테이블 작업을 위한 모듈이 많이 있습니다. 여기서는 openpyxl 모듈을 선택했습니다
하지만 openpyxl 모듈을 설치해야 합니다

pip install openpyxl
로그인 후 복사

위 명령을 사용하여 openpyxl 모듈을 설치합니다

이것이 조작이 필요한 테이블입니다
Excel 테이블에 대한 Python 작업
1>

import openpyxl# 1. 打开一个excel文档, 
class 'openpyxl.workbook.workbook.Workbook'实例化出来的对象wb = openpyxl.load_workbook('Book.xlsx')
print(wb, type(wb))# 获取当前工作薄里所有的工作表,和正在使用的表;print(wb.sheetnames)
print(wb.active)
로그인 후 복사

Excel 테이블에 대한 Python 작업
는 개체입니다.
2> 작업할 워크시트를 선택합니다.

# 2.选择要操作的工作表,返回工作表对象sheet=wb['Sheet1']
#获取工作表的名称print(sheet.title)
로그인 후 복사

Excel 테이블에 대한 Python 작업
3> 지정된 행과 열의 셀 정보를 지정합니다.

# 3. 返回指定行指定列的单元格信息print(sheet.cell(row=1, column=2).value)
cell = sheet['B1']print(cell)print(cell.row, cell.column, cell.value)
로그인 후 복사

Excel 테이블에 대한 Python 작업
4> 워크시트에서 Value

# 4. 获取工作表中行和列的最大值print(sheet.max_column)print(sheet.max_row)
sheet.title = '学生信息'print(sheet.title)
로그인 후 복사

Excel 테이블에 대한 Python 작업
5> 셀의 모든 정보에 접근

# 5. 访问单元格的所有信息print(sheet.rows)  
# 返回一个生成器, 包含文件的每一行内容, 可以通过便利访问.
# 循环遍历每一行for row in sheet.rows:    
# 循环遍历每一个单元格for cell in row:        
# 获取单元格的内容
   print(cell.value, end=',')
 print()
로그인 후 복사

Excel 테이블에 대한 Python 작업
6> 수정된 정보 저장

#6.保存修改信息wb.save(filename='Boom.xlsx')
로그인 후 복사

Excel 테이블에 대한 Python 작업
따라서 Excel 테이블 조작은 다음과 같이 자세히 요약할 수 있습니다.
1. openpyxl 모듈.
2. openpyxl.load_workbook() 함수를 호출합니다.
3. 통합 문서 개체를 가져옵니다.
4. 통합 문서 세부 정보를 얻으려면 wb.sheetnames 및 wb.active를 호출하세요.
5. 워크시트 개체를 가져옵니다.
6. 행 및 열 키워드 매개변수와 함께 인덱스 또는 워크시트의 cell() 메서드를 사용하세요.
7. 셀 개체를 가져옵니다.
8. Cell 개체의 값 속성 읽기
2 간단한 Excel 예제
- readwb(wbname, sheetname=None) 함수 정의
- 사용자가 시트 이름을 지정하면 사용자가 지정한 워크시트를 엽니다. 지정, 활성 시트 열기
- 제품 가격(작은 것부터 큰 것까지)별로 정렬하고 파일에 저장합니다. 제품 이름: 제품 가격: 제품 수량
- 모든 정보를 데이터베이스에 저장합니다.

import osimport openpyxldef readwb(wbname, sheetname=None):
        # 打开工作薄
    wb = openpyxl.load_workbook(wbname)    # 获取要操作的工作表
    if not sheetname:
        sheet = wb.active    else:
        sheet = wb[sheetname]    # 获取商品信息保存到列表中
    #[ ['name', price, count]
    all_info = []    for row in sheet.rows:
        child = [cell.value for cell in row]
        all_info.append(child)    
        return sorted(all_info, key=lambda 
        item: item[1])def save_to_excel(data, wbname, sheetname='sheet1'):
    """
    将信息保存到excel表中;
    [[' BOOK', 50, 3], ['APPLE', 100, 1], ['BANANA', 200, 0.5]]
    """
    print("写入Excel[%s]中......." %(wbname))    #打开excel表, 如果文件不存在, 自己实例化一个WorkBook对象
    wb = openpyxl.Workbook()    # 修改当前工作表的名称
    sheet = wb.active    # 修改工作表的名称
    sheet.title = sheetname    for row, item in enumerate(data):  # 0 [' BOOK', 50, 3]
        for column, cellValue in enumerate(item): #  0 ' BOOK'
        sheet.cell(row=row+1, column=column+1, value=cellValue) # ** 往单元格写入内容
    # sheet.cell['B1'].value = "value"
    # sheet.cell(row=1, column=2, value="value")
    # 保存写入的信息
    wb.save(filename=wbname)
    print("写入成功!")
data = readwb(wbname='Book1.xlsx')
save_to_excel(data, wbname='Book2.xlsx', sheetname="排序商品信息")
로그인 후 복사

Excel 테이블에 대한 Python 작업

*3 테이블 내용 변경*
각 행은 별도의 판매를 나타냅니다. 열에는 판매된 제품 유형(A), 제품의 파운드당 가격
(B), 판매된 파운드 수(C) 및 판매로 인한 총 수익이 있습니다. TOTAL 열은 파운드당 비용에 판매된 파운드를 곱하고
결과를 가장 가까운 센트로 반올림하는 Excel 수식으로 설정됩니다. 이 수식을 사용하면 B열이나 C열이 변경되면 TOTAL 열의 셀이 자동으로 업데이트됩니다.

업데이트해야 할 가격은 다음과 같습니다.
Celery 1.19
Garlic 3.07
Lemon 1.27

现在假设 Garlic、 Celery 和 Lemons 的价格输入的不正确。这让你面对一项无聊
的任务:遍历这个电子表格中的几千行,更新所有 garlic、celery 和 lemon 行中每磅
的价格。你不能简单地对价格查找替换,因为可能有其他的产品价格一样,你不希
望错误地“更正”。对于几千行数据,手工操作可能要几小时
下载文件 : produceSales.xlsx
原文件打开情况:
Excel 테이블에 대한 Python 작업
1> 首先需要打开电子表格文件
2> 然后查找每一行内容,检查列 A (即列表的第一个索引)的值是不是 Celery、Garlic 或 Lemon
3> 如果是,更新列 B 中的价格(即列表第二个索引)
4> 最后将该表格保存为一个新的文件

import osimport openpyxldef readwb(wbname, sheetname=None):
    # 打开工作薄
    wb = openpyxl.load_workbook(wbname)    
    # 获取要操作的工作表
    if not sheetname:
        sheet = wb.active    else:
        sheet = wb[sheetname]    
        # 获取商品信息保存到列表中
    all_info = []    for row in sheet.rows:
        child = [cell.value for cell in row]
        all_info.append(child)        
        if child[0] == 'Celery':
            child[1] = 1.19
        if child[0] == 'Garlic':
            child[1] = 3.07
        if child[0] == 'Lemon':
            child[1] = 1.27
    return all_infodef save_to_excel(data, wbname, sheetname='sheet1'):
    """
    将信息保存到excel表中;
    """
    print("写入Excel[%s]中......." % (wbname))    
    # 打开excel表, 如果文件不存在, 自己实例化一个WorkBook对象
    wb = openpyxl.Workbook()    
    # 修改当前工作表的名称
    sheet = wb.active    
    # 修改工作表的名称
    sheet.title = sheetname    
    for row, item in enumerate(data):  # 0 [' BOOK', 50, 3]
        for column, cellValue in enumerate(item):  # 0 ' BOOK'
            sheet.cell(row=row + 1, column=column + 1, value=cellValue)    
            # ** 往单元格写入内容
    # sheet.cell['B1'].value = "value"
    # sheet.cell(row=1, column=2, value="value")
    # 保存写入的信息
    wb.save(filename=wbname)
    print("写入成功!")
data = readwb(wbname='/home/kiosk/Desktop/day17/produceSales.xlsx')
save_to_excel(data, wbname='new_Sales.xlsx', sheetname="商品信息")
로그인 후 복사

Excel 테이블에 대한 Python 작업
表示写入新数据成功
Excel 테이블에 대한 Python 작업


这是更改后的保存的新表格

위 내용은 Excel 테이블에 대한 Python 작업의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!