>백엔드 개발 >파이썬 튜토리얼 >Python이 두 스프레드시트의 데이터 간 차이를 빠르게 찾는 방법에 대한 소개

Python이 두 스프레드시트의 데이터 간 차이를 빠르게 찾는 방법에 대한 소개

黄舟
黄舟원래의
2017-05-28 11:15:212134검색

아래 편집기에서 python 두 스프레드시트의 데이터 차이를 빠르게 찾는 방법에 대한 기사를 제공합니다. 에디터가 꽤 좋다고 생각해서 지금 공유해서 참고용으로 올려보겠습니다. 에디터를 따라가서 살펴볼까요

저는 최근에 Python을 접하게 되었어요. 제 능력을 연습하기 위해 몇 가지 작은 작업을 찾고 있어요. 계속해서 실무에서 문제 해결 능력을 발휘할 수 있었으면 좋겠어요.

회사에 다음과 같은 시나리오가 있을 것입니다. 2개, 3개 이상의 부서에서 사용하는 전자 양식이 있습니다. 이러한 직원은 이러한 양식을 유지하고 수시로 자신의 부서의 데이터를 업데이트합니다. 시간이 지나면서 모든 사람의 데이터가 싸우기 시작했는데 이는 관리에 매우 불리한 상황이었습니다. 두 개 이상의 스프레드시트에서 데이터의 차이점을 빠르게 찾는 방법은 무엇입니까?

해결책:

1.엑셀만의 방법(관심있으면 바이두 사용)

2.파이썬으로 작은 스크립트를 작성해 보세요

#!/usr/bin/env python
# -*- coding: utf-8 -*-

#导入模块 openpyxl 
import openpyxl
from openpyxl.styles import PatternFill
from openpyxl.styles import colors
from openpyxl.styles import Font, Color

#读取excel文件
#括号中的字符串为你要比较的两个excel的路径,注意用“/”
wb_a = openpyxl.load_workbook('d:/BAKFILE/d046532/Desktop/check excel/test.xlsx')
wb_b = openpyxl.load_workbook('d:/BAKFILE/d046532/Desktop/check excel/test2.xlsx')
#定义一个方法来获取表格中某一列的内容,返回一个列表
#在这里,我的表格中:IP是具有唯一性的,所以我用它来区分数据的差异,而IP这一列在我的表格中是第“G”列
def getIP(wb):
  sheet = wb.get_active_sheet()
  ip = []
  for cellobj in sheet['G']:
    ip.append(cellobj.value)

  return ip
#获得ip列表
ip_a = getIP(wb_a)
ip_b = getIP(wb_b)
#将两个列表转换成集合
aa = set(ip_a)
bb = set(ip_b)
#找出两个列表的不同行,并转换成列表
difference = list(aa ^ bb)
#打印出列表中的元素
#到这一步,两个表格中不同的数据已经被找出来了
for i in difference:
  print (i)

#将不同行高亮显示
print ("开始第一张表" + "----" *10)
a = wb_a.get_active_sheet()['G']
for cellobj in a:
  if cellobj.value in difference:
    print (cellobj.value)
    cellobj.font = Font(color=colors.BLACK, italic=True ,bold = True)
    cellobj.fill = PatternFill("solid", fgColor="DDDDDD")
print ("开始第二张表" + "----" *10)
b = wb_b.get_active_sheet()['G']
for cellobj in b:
  if cellobj.value in difference:
    print (cellobj.value)
    cellobj.font = Font(color=colors.BLACK, italic=True ,bold = True)
    cellobj.fill = PatternFill("solid", fgColor="DDDDDD")

wb_a.save('d:/BAKFILE/d046532/Desktop/a.xlsx')
wb_b.save('d:/BAKFILE/d046532/Desktop/b.xlsx')

두 개의 Excel 복사본을 저장하고 셀 채우기 색상과 글꼴 색상을 사용하여 이 복사본에 있는 두 테이블의 서로 다른 데이터 차이점을 표시합니다

Unresolved:

1. 테이블에 추가하여 완전한 테이블

2. 코드를 최적화하고 간소화하는 방법

위 내용은 Python이 두 스프레드시트의 데이터 간 차이를 빠르게 찾는 방법에 대한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.