利用Python将xlsx文件转换成DBC

在autosar开发中,很多时候甲方是直接输出xlsx文件,这时候需要我们自己动手生成DBC文件来作为工程的输入文件,直接在CANdb++中修改比较麻烦,所以写了一个python脚本,以便加方便的生成DBC文件,网上查了查大神们一般用什么方法什么模块来生成DBC,加上自己的优化,现在将代码提供如下,仅供参考学习,如有侵权问题,请及时联系。

代码:

#!/usr/bin/python3

#-*- coding:utf-8 -*-
import xlwt
import xlrd
import xlsxwriter
import canmatrix
import decimal
import os
import openpyxl
import lib2to3

# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    # 输入文件
    print("hello,begin!!!")

    input_file = r'C:\Users\huiyi\Desktop\zjt\py\11.xlsx'
    sheet_name = "T_CAN"
    # 使用xlrd库读取excel文件
    excel_obj = xlrd.open_workbook(input_file)
    # use canmatrix创建DBC实例
    matrix_obj = canmatrix.CanMatrix()

    # add global property
    # 总线类型
    matrix_obj.add_global_defines("BusType", "STRING")
    matrix_obj.add_define_default("BusType", "CAN")
    # 报文发送类型属性以及默认值
    matrix_obj.add_frame_defines("GenMsgSendType", 'ENUM "Cyclic", "Event"')
    matrix_obj.add_define_default("GenMsgSendType", "Cyclic")

    matrix_obj.add_frame_defines("GenMsgCycleTime", 'INT 0 65535')
    matrix_obj.add_define_default("GenMsgCycleTime", "0")

    #matrix_obj.add_signal_defines("SPN", 'INT 0 65535')
    matrix_obj.add_define_default("SPN", "0")


    # 获取工作簿,开始处理数据
    sheet_obj = excel_obj.sheet_by_name(sheet_name)
    if sheet_obj is None:
        raise "工作簿错误!&
  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值