MTK智能平台电池曲线自动生成

改电池曲线是件非常头痛的事,四个温度总共要填几百个数据,一条一条的去敲效率太低,所以写个脚本自动去生成这些数据,希望有人能用到。一开始我打算用MFC写,但需要建立工程,还有繁琐的设置,所以用MFC肯定要费不少功夫。MATLAB是我想到的第二个办法,MATLAB可以直接读取excel文件,数据保存在矩阵里面,可以直接对行列数据进行操作非常方便,但公司电脑上没有安装MATLAB,不得不放弃这个选择。这时便想起了Python,虽然它没有matlab方便但相比MFC要简单得许多,但需要安装xlrd模块,可以在https://pypi.python.org/pypi/xlrd下载。费话不多说了,下面给出我的代码大家一起学习吧(里面数字根据excel表格具体内容修改)

# -*- coding: utf-8 -*-
# 说明:本文件是为了节省再MTK平台该电池曲线而设计的,因为人工一个一个数据去改太耗时间
# 使用方法
# 在main函数中调用函数 excel_table_byclone(file, col1, col2, row1, row2, arr_name, by_index)即可
# 该函数会生成$(arr_name).txt文件,内容为arr_name的数组
# 参数说明:
# file 要打开的excel文件名
# col1 第一列,因为数组里面是表格的两列数据
# col2 第二列
# row1 起始行,从0开始计数
# row2 结束行
# arr_name 要生成的数组名
# by_index 指定excel表格是哪个sheet,因为一个表格可以有多个sheet,这里我们一般为0


import  xdrlib ,sys
import xlrd


def open_excel(file= 'test.xls'):
try:
data = xlrd.open_workbook(file)
return data
except Exception,e:
print str(e)


# 读取指定列
def excel_table_byclone(file= 'test.xls',col1=1,col2=1,row1=1,row2=1,arr_name = 'desarr', by_index=0):
#str = 'cust_battery_meter_table.h' # "%s.txt"%(arr_name)
str = "%s.txt"%(arr_name)
pf = open(str, 'w')
data = open_excel(file)
table = data.sheets()[by_index]
str = "%s[] = { \n"%(arr_name)
pf.write(str)
pf.write('')


for rownum in range(row1,row2):
row = table.row_values(rownum)
if row:
str = "\t{%3d,\t%3d},\n"%(row[col1]+0.5, row[col2]+0.5)
# pf.seek(-1)
pf.write(str)
print(str)
str = "};\n"
pf.write(str)
pf.close()

def main():
#excel_table_byclone('a11.xls', 2,3,2,95)
# 电压电量
excel_table_byclone('a11.xls', 5,1,1,76,'battery_profile_t50')
excel_table_byclone('a11.xls', 12,8,1,76,'battery_profile_t25')
excel_table_byclone('a11.xls', 19,15,1,76,'battery_profile_t00')
excel_table_byclone('a11.xls', 26,22,1,76,'battery_profile_t10')

# 电压电阻
excel_table_byclone('a11.xls', 6,1,1,76,'battery_profile_r50')
excel_table_byclone('a11.xls', 13,8,1,76,'battery_profile_r25')
excel_table_byclone('a11.xls', 20,15,1,76,'battery_profile_r00')
excel_table_byclone('a11.xls', 27,22,1,76,'battery_profile_r10')

# if __name__=="__main__":
main()
 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值