python pandas excel读取和写入,以及颜色设置

原因

这几天策划做多语言翻译,因为外包给回来的翻译文件和原来的文件顺序是错乱的,而现在新的配置文件又有增删。本着技术解放生产力的想法和没事找事做原则,强行给自己加了个需求。用python写一个工具,将两边的内容进行对比,生成一个新的文件,并用颜色标注差异部分。

环境

  1. Python 3.9.7
  2. pandas
  3. os
  4. re
import pandas as pd
import os
import sys
import re
import time

csv读取

fResult = re.findall("^.*\.(\w+)$", filePath)
if (len(fResult) == 0):
    return
fileType = fResult[0]
if fileType == "csv":#简单判断下文件类型
	data = pd.read_csv(filePath, None, header=None, engine='python') 
    for jKey in data.keys():
        jRow = data[jKey]
        for kIndex in range(1, len(jRow)):
        	kContent = jRow[kIndex] #获取到单元格内容
			......

excel读取

data = pd.read_excel(filePath, None, header=None) #设置header才能读取到第一行
for jKey in data.keys():
	jSheetData = data[jKey]
    totalRow = len(jSheetData.index) #总行数
    for kRow in range(1, totalRow):#从第二行开始遍历
    	oneRow = jSheetData.loc[kRow][0:]
    	for kIndex in range(len(oneRow)):
            kContent = oneRow[kIndex] #获取到单元格内容
    	......

excel单元格颜色设置以及excel写入

def style_apply(content, colors, back_ground=''):
    if content != None and content in colors.keys():
        return 'background-color: ' + colors[content]
    return back_ground

def style_color(df, colors):
    return df.style.applymap(style_apply, colors=colors)
    
resultMap = {'A':['test1', 'test2', 'test3'], 'B':['test2', 'test4', 'test5']} #写入数据结构示例
filePath = "{}.xlsx".format(int(time.time()*1000))

compare_pd=pd.DataFrame(resultMap)
writer = pd.ExcelWriter(filePath, engine='openpyxl')#创建数据存放路径

colors = {'test1':'#ff0000', 'test2':'#ffff00'}
style_df = style_color(compare_pd, colors)

style_df.to_excel(writer, header=None, index=False, sheet_name='compare')

writer.save()#文件保存
writer.close()

os.startfile(filePath)# 使用默认程序自动打开新生成的excel文件

参考链接

https://www.yisu.com/zixun/234627.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值