>  기사  >  백엔드 개발  >  두 스프레드시트에서 데이터의 차이점을 빠르게 찾아보세요.

두 스프레드시트에서 데이터의 차이점을 빠르게 찾아보세요.

大家讲道理
大家讲道理원래의
2017-05-28 10:05:152310검색

최근에 Python을 접하게 되었는데, 실전에서 계속해서 문제 해결 능력을 발휘할 수 있기를 바랍니다.

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

  해결방법 :

   1. 엑셀에 기본으로 제공되는 방법 (관심 있으신 분들은 바이두를 직접 사용해 보세요)

   2. 파이썬으로 간단한 스크립트 작성


 1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3  4 #导入模块 openpyxl   5 import openpyxl 6 from openpyxl.styles import PatternFill 7 from openpyxl.styles import colors 8 from openpyxl.styles import Font, Color 9 10 #读取excel文件11 #括号中的字符串为你要比较的两个excel的路径,注意用“/”12 wb_a = openpyxl.load_workbook('d:/BAKFILE/d046532/Desktop/check excel/test.xlsx')13 wb_b = openpyxl.load_workbook('d:/BAKFILE/d046532/Desktop/check excel/test2.xlsx')14 #定义一个方法来获取表格中某一列的内容,返回一个列表15 #在这里,我的表格中:IP是具有唯一性的,所以我用它来区分数据的差异,而IP这一列在我的表格中是第“G”列16 def getIP(wb):17     sheet = wb.get_active_sheet()18     ip = []19     for cellobj in sheet['G']:20         ip.append(cellobj.value)21 22     return ip23 #获得ip列表24 ip_a = getIP(wb_a)25 ip_b = getIP(wb_b)26 #将两个列表转换成集合27 aa = set(ip_a)28 bb = set(ip_b)29 #找出两个列表的不同行,并转换成列表30 difference = list(aa ^ bb)31 #打印出列表中的元素32 #到这一步,两个表格中不同的数据已经被找出来了33 for i in difference:34     print (i)35 36 #将不同行高亮显示37 print ("开始第一张表" + "----" *10)38 a = wb_a.get_active_sheet()['G']39 for cellobj in a:40     if cellobj.value in difference:41         print (cellobj.value)42         cellobj.font = Font(color=colors.BLACK, italic=True ,bold = True)43         cellobj.fill = PatternFill("solid", fgColor="DDDDDD")44 print ("开始第二张表" + "----" *10)45 b = wb_b.get_active_sheet()['G']46 for cellobj in b:47     if cellobj.value in difference:48         print (cellobj.value)49         cellobj.font = Font(color=colors.BLACK, italic=True ,bold = True)50         cellobj.fill = PatternFill("solid", fgColor="DDDDDD")51 52 wb_a.save('d:/BAKFILE/d046532/Desktop/a.xlsx')53 wb_b.save('d:/BAKFILE/d046532/Desktop/b.xlsx')

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

Unresolved:

  1. 이러한 서로 다른 데이터를 하나의 테이블에 추가하여 완전한 테이블을 형성하는 방법

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

위 내용은 두 스프레드시트에서 데이터의 차이점을 빠르게 찾아보세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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