用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的文件,不过其 ...
随机推荐
- java基础(九) 可变参数列表介绍
一.可变参数简介 在不确定参数的个数时,可以使用可变的参数列表. 1. 语法: 参数类型...(三个点) 例如: void printArray(Object...) 注意: 每个方法最多只有一个可变 ...
- vue.js高仿饿了么(前期整理)
1.熟悉项目开发流程 需求分析——>脚手架工具——>数据mock——>架构设计——>代码编写——>自测——>编译打包. 2.熟悉代码规范 从架构设计.组件抽象.模块 ...
- ES6-let & const
let和const命令 let 它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效. for(let i = 0; i < arr.length; i++){} 用let命 ...
- Jmeter 测试 JMS (Java Message Service)/ActiveMQ 性能
前言 JMS介绍:JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送 ...
- 第三届移动互联网测试开发大会 PPT合集下载
PPT下载地址 http://www.51test.space/archives/2887 大会介绍 Mobile Testing Summit China(中国移动互联网测试开发大会)是一个以移动测 ...
- hibernate的延迟加载和抓取策略
一,延迟加载 1.实体类延迟加载 通过代理机制完成,由javassist类库实现运行时代理,修改实体类的字节码实现了运行时代理 <class lazy="true|false& ...
- Jmeter入门--安装教程
jmeter简介 Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. 它可以用于测试静态和动 ...
- .net网站转到出错页是如何实现的
<customErrors mode="On" defaultRedirect="GenericErrorPage.htm"><error s ...
- 点击单个cell高度变化的动画效果
点击单个cell高度变化的动画效果 效果 说明 1. 点击单个cell的时候,其展开与缩放动画实现起来是很麻烦的,做过相关需求的朋友一定知道其中的坑 2. 本例子只是提供了一个解决方案,为了简化操作, ...
- HTML5新增和废弃的标签
一.废弃的标签 以下的 HTML 4.01 元素在HTML5中已经被删除,虽然浏览器为了兼容性考虑都还支持这些标签,但建议使用新的替代标签,矛盾的是老浏览器对新标签的支持度又不够,视项目的受众对象而定 ...