用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的文件,不过其 ...
随机推荐
- Storm并行度
1.Storm并行度相关的概念 Storm集群有很多节点,按照类型分为nimbus(主节点).supervisor(从节点),在conf/storm.yaml中配置了一个supervisor有多个槽( ...
- 对象的数据属性(Object)
value: 对象属性的默认值,默认值为undefined configurable: 能否使用delete.能否需改属性特性.或能否修改访问器属性.,false为不可重新定义,默认值为true en ...
- 2017年秋季个人阅读计划 ---《掌握需求过程》第二版 pdf
这学期我们学习是软件需求分析,为了扩展视野,我们老师要求精读一本书,我根据老师推荐的书籍中找到了一本,名字叫做<掌握需求过程>,我大概浏览了一下这本书,这本书论述了软件开发中的重要课题—如 ...
- 9.Java注解(Annotation)
一.系统内置标准注解 1.@Override 是一个标记注解类型,它被用作标注方法. 它说明了被标注的方法重载了父类的方法,起到了断言的作用.如果我们使用了这种Annotation在一个没有覆盖父类方 ...
- Oracle EBS 日记账
select b.status, h.je_source, (select USER_JE_CATEGORY_NAME from GL_JE_CATEGORIES where JE_CATEGORY_ ...
- 使用 sar 和 kSar 来发现 Linux 性能瓶颈
作者: Vivek Gite 译者: LCTT qhwdw | sar 命令用用收集.报告.或者保存 UNIX / Linux 系统的活动信息.它保存选择的计数器到操作系统的 /var/log/sa/ ...
- flask的g对象
故名思议我们可以理解这个g对象是一个全局的对象,这个对象存储的是我们这一次请求的所有的信息,只是存储这一次的请求 g:global 1. g对象是专门用来保存用户的数据的. 2. g对象在一次请求中 ...
- 生活随记[All]
1. 心灵鸡汤[all] 2. 工作总结 [all] 3. 面试经验[all] 4. 其他
- nodejs API(一)
不要注重版本 URL 官网所在位置:https://nodejs.org/dist/latest-v8.x/docs/api/url.html URL网址解析的好帮手: url有三个可调用的方法:ur ...
- ACE.js自定义提示实现方法
ACE.js自定义提示实现方法 时间 2015-11-19 00:55:22 wsztrush's blog 原文 http://wsztrush.github.io/编程技术/2015/11/0 ...