用CBrother将excel中的数据转换为C语言头文件
用CBrother将excel中的数据转换为C语言头文件
最近在工作中,产品这边总是要调整一些参数,而我们在这一块要求所有的配置必须用宏定义来做,因为不同型号直接硬编码写死在代码里,但是一但数量大了,而且还经常是浮点数,一天改上个十次八次的,直接头就大了,跟CBrother作者沟通后,他在1.0.8里面增加了excel的读取,我直接可以把产品给的excel内容生成一个C语言头文件,这样一来你一天就算改100次我也没感觉。
先来看看我们的excel:

我r他哥。。。。。,之前我都是一个一个复制进去的,一天改10次我都想砸电脑了。
再来看看我的转化脚本:
import CBExcel.code function main(parm)
{
var excel = new Excel(); var path = GetRoot() + "config.xlsx";
if(!excel.load(path))
{
print path + " load error.";
return;
} var excelsheet = excel.getWorksheet(0);//第一页就是我要的config var totalRows = excelsheet.getTotalRows();
var totalClos = excelsheet.getTotalCols(); var file = new File(GetRoot() + "CarConfig.h","wb");
file.write("#ifndef CarConfig_H_\r\n#define CarConfig_H_\r\n\r\n"); //第0行表头不用从1开始
for(var i = 1 ; i < totalRows ; i++)
{
var carNo = excelsheet.getCell(i,0).getString();
if(strlen(carNo) <= 0)
{
continue;
} var audioCnf = excelsheet.getCell(i,1).getDouble();
var lightCnf = excelsheet.getCell(i,2).getDouble(); file.write("#define CAR_AUDIO_CONFIG_" + carNo + " " + audioCnf);
file.write("\r\n");
file.write("#define CAR_LIGHT_CONFIG_" + carNo + " " + lightCnf);
file.write("\r\n\r\n");
} file.write("#endif");
file.close();
}
运行后在脚本旁边生成了.h文件

打开看一下

so easy!!!,后面产品狗再怎么修改我也不怕了。
用CBrother将excel中的数据转换为C语言头文件的更多相关文章
- 【数据传输 2】批量导入的前奏:将Excel表中的数据转换为DataTable类型
导读:我们知道,在数据库中,数据集DataSet是由多张DataTable表组成.所以,如果我们需要将数据从外部导入到数据库中,那么要做的很重要的一步是将这些数据转换为数据库可以接受的结构.今天在用S ...
- NOPI读取模板导出(Excel中追加数据)
在Controller里,我们定义一个FileResult的Action,返回值是一个文件形式被浏览器下载下来. [HttpGet] public FileResult ExportProductLi ...
- 使用Python将Excel中的数据导入到MySQL
使用Python将Excel中的数据导入到MySQL 工具 Python 2.7 xlrd MySQLdb 安装 Python 对于不同的系统安装方式不同,Windows平台有exe安装包,Ubunt ...
- Java利用POI导入导出Excel中的数据
首先谈一下今天发生的一件开心的事,本着一颗android的心我被分配到了PB组,身在曹营心在汉啊!好吧,今天要记录和分享的是Java利用POI导入导出Excel中的数据.下面POI包的下载地 ...
- 使用OpenXml把Excel中的数据导出到DataSet中
public class OpenXmlHelper { /// <summary> /// 读取Excel数据到DataSet中,默认读取所有Sheet中的数据 /// </sum ...
- sql 读取excel中的数据
select 列名 as 字段名 from openBowSet('MSDASQL.1','driver=Microsoft Excel Driver(*.xls);dbq=文件存放地址','sele ...
- excel中的数据导入oracle方法
SQL_loader批量上传数据 1. 注释 在工作中,很多时候会遇到如下情况:需要将excel中的数据批量上传到ORACLE表中.如果是小数据量,如几十条至几百条,那么用plsql dev工具 ...
- C# Unity游戏开发——Excel中的数据是如何到游戏中的 (二)
本帖是延续的:C# Unity游戏开发——Excel中的数据是如何到游戏中的 (一) 上个帖子主要是讲了如何读取Excel,本帖主要是讲述读取的Excel数据是如何序列化成二进制的,考虑到现在在手游中 ...
- C# Unity游戏开发——Excel中的数据是如何到游戏中的 (三)
本帖是延续的:C# Unity游戏开发——Excel中的数据是如何到游戏中的 (二) 前几天有点事情所以没有继续更新,今天我们接着说.上个帖子中我们看到已经把Excel数据生成了.bin的文件,不过其 ...
随机推荐
- LeetCode题解之Add two numbers
1.题目描述 2.题目描述 题目思路可以参考合并单链表的思路,定义一个全局 进位标志,如果两个数值相加得到需要进位,则将进位标志置为1 . 3.代码 ListNode* addTwoNumbers(L ...
- 从Azure上构建Windows应用程序映像
从Azure上构建windows应用程序映像同构建Linux应用程序映像总体流程比较类似,可以参考上图Linux映像的制作发布等流程,具体细节又有所差别. 具体步骤如下: 从Azure管理平台上申请W ...
- 网罗收集10046的各种Case,方便trace信息的收集
每逢与遇到SQL相关性能,我们总是需要收集10046的,来查看和诊断问题.因为10046真实的反应的SQL语句执行的时候的真实信息,解析,执行,获取的时间消耗,row source operation ...
- SharePoint 2007——内容管理之归档篇
如果需要使用这个功能普通的站点上(没有使用Record Center站点模板的站点),必须激活'Office SharePoint Server Publishing’ featue. 在使用Rec ...
- FtpWebRequest与FtpWebResponse完成FTP操作
WebRequestMethods.Ftp类: 表示可与 FTP 请求一起使用的 FTP 协议方法的类型. AppendFile 表示要用于将文件追加到 FTP 服务器上的现有文件的 FTP ...
- 我的Java之旅——答答租车系统
今天试着写了一个新的程序,叫做"答答租车系统",是慕课网上的一个综合练习,戳我看原题. 项目要求截图如下: 我的代码(简单粗暴版): Vehicle.java public cla ...
- 【原创】Apache ab结果参数详解
解释如下: Server Software 服务器软件软件名称. Server Hostname 被测服务器的主机名. Server Port 被测试的Web服务器的监听端口. SSL/TLS Pro ...
- 转 oracle的热备份和冷备份
一.冷备份介绍: 冷备份数据库是将数据库关闭之后备份所有的关键性文件包括数据文件.控制文件.联机REDO LOG文件,将其拷贝到另外的位置.此外冷备份也可以包含对参数文件和口令文件的备份,但是这 ...
- Ubuntu18.04 使用过程遇到的问题记录
索引: 1.Ubuntu 18.04 安装搜狗输入法 2.在 Ubuntu 18.04 中将第三方软件添加至 favorite 菜单栏 3.在 VMware workstation 中为虚拟机安装 V ...
- configuration on ubuntu server
1.network configuration 1.1 static ip sudo vi /etc/network/interfaces auto eth0 iface eth0 inet stat ...