JS对报表的读写操作【cell】

1、基础文件comm.js

//===============================================================================
//数据抽取成JSON
function extractCell2JsonAssignCol(vParams){
var totalJsonInfo = "";
var rowJsonInfo = "";

var params = vParams;
var colNames = getColname(params.tableColumn); //JSON数据标志
for( var i=params.startRow; i<=params.endRow; i++){
var excludeStr = "{"+i+"}";
//排除不取数据的行
if(params.excludeRow.indexOf(excludeStr)<0){
//数据提取
rowJsonInfo = "";
for (var j=0; j<params.colSize; j++) {
var celldata = "";
//读取节点数据
var dt = Cell.GetCellDataType(params.assignCols[j],i,params.cursheet); //0 空值; 1 字符串;2 数值(双精度浮点数)。
if(dt==1){//1、读取字符串
var oldValue = trim(Cell.GetCellString(params.assignCols[j], i, params.cursheet));
if((oldValue!='*')&&(oldValue!='-')&&(oldValue!='—')) {
celldata = "'" + Cell.GetCellString(params.assignCols[j],i,params.cursheet) + "'";
} else {
celldata = "''";
}
}else if(dt==2){//2、读取 数值(双精度浮点数)
celldata = "'" + Cell.GetCellDouble(params.assignCols[j],i,params.cursheet) + "'";
}else{//3、其他类型
//celldata = "'" + Cell.GetCellString(params.assignCols[j], i,params.cursheet) + "'";
var oldValue = trim(Cell.GetCellString(params.assignCols[j], i, params.cursheet));
if((oldValue!='*')&&(oldValue!='-')&&(oldValue!='—')) {
celldata = "'" + Cell.GetCellString(params.assignCols[j],i,params.cursheet) + "'";
} else {
celldata = "''";
}
}

//拼合节点
if(rowJsonInfo!=""){

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Qt使用matlab库对mat文件进行读写操作,需要使用Matlab Engine API。以下是一个示例代码,演示了如何读取和写入一个包含cell类型的mat文件: ```cpp #include <QCoreApplication> #include <engine.h> #include <iostream> #include <string> #include <vector> #include <mat.h> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); // Start a MATLAB engine Engine *ep = engOpen(nullptr); if (!ep) { std::cerr << "Failed to open MATLAB engine" << std::endl; return 1; } // Load the mat file MATFile *pmat = matOpen("example.mat", "r"); if (!pmat) { std::cerr << "Failed to open mat file" << std::endl; return 1; } // Get the variable from the mat file mxArray *pa = matGetVariable(pmat, "cellVar"); if (!pa) { std::cerr << "Failed to get variable from mat file" << std::endl; return 1; } // Get the data from the mxArray int nRows = mxGetM(pa); int nCols = mxGetN(pa); std::vector<std::vector<double>> data(nRows, std::vector<double>(nCols)); for (int i = 0; i < nRows; ++i) { for (int j = 0; j < nCols; ++j) { mxArray *elem = mxGetCell(pa, i + nRows*j); data[i][j] = mxGetScalar(elem); } } // Close the mat file matClose(pmat); // Do something with the data std::cout << "Read data from mat file:" << std::endl; for (int i = 0; i < nRows; ++i) { for (int j = 0; j < nCols; ++j) { std::cout << data[i][j] << " "; } std::cout << std::endl; } // Write data to a new mat file MATFile *pmatNew = matOpen("exampleNew.mat", "w"); if (!pmatNew) { std::cerr << "Failed to create new mat file" << std::endl; return 1; } mxArray *paNew = mxCreateNumericMatrix(nRows, nCols, mxDOUBLE_CLASS, mxREAL); for (int i = 0; i < nRows; ++i) { for (int j = 0; j < nCols; ++j) { mxArray *elem = mxCreateDoubleScalar(data[i][j]); mxSetCell(paNew, i + nRows*j, elem); } } matPutVariable(pmatNew, "cellVarNew", paNew); // Close the new mat file matClose(pmatNew); // Close the MATLAB engine engClose(ep); return 0; } ``` 在此示例,我们打开了一个名为 `example.mat` 的mat文件,并从获取了名为 `cellVar` 的变量。这个变量包含了一个 `nRows` 行 `nCols` 列的cell数组,其每个元素都是一个double类型的数值。我们将数据存储在一个 `std::vector<std::vector<double>>` ,并打印出来。然后,我们将这个数据写入一个新的mat文件 `exampleNew.mat` ,其变量名为 `cellVarNew`。 需要注意的是,这个示例代码假设了mat文件包含了一个名为 `cellVar` 的变量,并且这个变量是一个 `nRows` 行 `nCols` 列的cell数组,其每个元素都是一个double类型的数值。如果你的mat文件包含了其他类型的变量,或者变量的尺寸和类型与上述描述不同,你需要根据实际情况进行修改。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值