通用万能excel导入的Python实现

通用万能excel导入的Python实现


一.正言

        从设计方案到算法和功能代码实现,花了我一周时间,在这里记录方便大家参考。废话少说,首先通过配置文件配置你想要的数据,只需要配置简单的表达式就可以实现由价值的数据分析和挖掘出有价值的信息数据。最终得到的是以字段为首的json数据。后期可以对excel或导出功能做成可视化,使用户的操作和体验更加便捷化。


二.配置文件

      
{
	"updateTime": "2018-02-07",           
	"database_host": "10.10.10.6",         
	"database_port": 9400,                
	"database_name": "mdap-dev",    
	"filePath":"/projectName/input", 
	"fileName":"test.xlsx", 	      
	"$excelConfig": [  					  
		{
			"sheetName":"数据录入" ,  	  
			"target_data_area":"A2~A31",
			"target_data_key":"(x=A,y=1)",
			"datas":[ 					
			 		{
						"value": "(x=B,y=_y)",
						"key":"指标小类"
					},
					{
						"value": "(x=C,y=_y)",
						"key":"(x=C,y=1)"
					},
					{
						"value": "(x=D,y=_y)",
						"key":"(x=D,y=1)"
					},
					{
						"value": "(x=E,y=_y)",
						"key":"(x=E,y=1)"
					},
					{
						"value": "(x=F,y=_y)",
						"key":"(x=F,y=1)"
					}
				
			 ]
			
		}
		
	]
}


三。配置文件说明

              
"updateTime": 更新时间设置
"database_host": "10.10.10.6",  存数据库地址       
"database_port": 9400,           端口号    
"database_name": "mdap-dev",    索引,名称
"filePath":"/projectName/input",  导入文件的路径
"fileName":"test.xlsx", 	      	导入文件的名称
"$excelConfig": [  			               文件具体参数配置    
	"sheetName":"数据录入" ,  	  第一个sheet的表名称
	"target_data_area":"A2~A31", 相对参照物字段对应取值区域
	"target_data_key":"(x=A,y=1)",相对参照物字段
	"datas":[ 					 其他字段配置
				"value": "(x=B,y=_y)",    字段对应的(通过公式表示取值横纵方向的取值范围)
				"key":"指标小类" 		 字段为"指标小类"

四.python代码

       4.1 test.py

        

#coding=utf-8
import json
import config
import os, configparser
from importExcel import commonExcelImport 
'''
测试各种样式的excel导入返回json数据条 
通用模板
@author: andong

'''

#def loadSettingFile():

cp = configparser.ConfigParser()
Settings = dict(
    config_file = os.path.join(os.path.dirname(__file__),'template.json'),
    config = cp
)

path=r"D:\workSpace\allExcelExport\config\template.json"
with open(path, "r", encoding='UTF-8') as excelTemplate:
    data = json.load(excelTemplate)
    updateTime = data['updateTime']
    filePath = data['filePath']
    fileName = data['fileName']
    excelConfig = data['$excelConfig']
    counter = 1;
    for i in range(len(excelConfig)):#遍历配置文件中每个sheet
        print ("序号:%s   值:%s" % (i + 1, excelConfig[i]))
        if __name__ == '__main__':
            commonExcelImport(filePath,fileName,excelConfig[i])
            
       # result = importExcel.ready_excel(filePath,fileName,excelConfig[i])
        




4.2 importExcel.py

    


                
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值