当前位置: 首页 > wzjs >正文

做外贸常用的网站什么是seo站内优化

做外贸常用的网站,什么是seo站内优化,怎样在阿里做网站,社交软件🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】🍅 玩转CANoe&…
  • 🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用
  • 🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】
  • 🍅 玩转CANoe,博客目录大全,点击跳转👉

目录

  • 📙 OpenXLSX库简介
  • 📙 DLL中的函数解读
    • 📙 读取表格指定表单的行列数
    • 📙 读/写单元格数据
    • 📙 读/写 行数据
    • 📙 读/写 列数据
  • 📙 保存与关闭
  • 📙 源码获取

🍅 背景:CAPL语言的简陋,同学们是有目共睹的,本身不支持解析xlsx表格文件的,奈何工程应用中,输入文件经常是xlsx格式,绕个弯的解决办法是,将xlsx文件转为csv文件,然后用capl解析csv文件,但是这种方法有点麻烦,这篇文件将基于C++公开库OpenXLSX库,封装一个可以在CAPL脚本中使用的DLL。


📙 OpenXLSX库简介

以下简介来自百度百科,OpenXLSX 是一个开源的 C++ 库,用于读取、创建和修改 Excel 文件(.xlsx 格式)。该库基于现代 C++ 标准(C++17),旨在提供一个简单、直观且高效的接口,使开发者能够轻松地在 C++ 项目中处理 Excel 文件。

主要特性:

  • 跨平台支持:OpenXLSX 支持在 Windows、Linux 和 macOS 平台上运行,确保了广泛的适用性。
  • 轻量级:该库设计简洁,依赖性少,适合嵌入到各种 C++ 项目中。
  • 高效:OpenXLSX 通过优化的内存管理和文件操作,提供了高效的 Excel 文件处理能力。
  • 易用性:提供了直观的 API,使开发者能够快速上手并实现复杂的 Excel 操作。

功能:

  • 读取和写入单元格数据:支持读取和写入字符串、数字、布尔值等多种数据类型。
  • 工作表管理:支持添加、删除和重命名工作表。
  • 单元格格式:支持设置单元格的格式,如字体、颜色、对齐方式等。
  • 文件保存和加载:支持将修改后的 Excel 文件保存到磁盘,以及从磁盘加载现有的 Excel 文件。

📙 DLL中的函数解读

open_xlsx_demo_win64.dll文件中有如下图中的函数,实现对xlsx文件的读写

在这里插入图片描述


这里注意CANoe的内核版本选择,如果是64bit RT Kernel ,则CAPL中只能使用X64版本的DLL,否则使用X86版本的DLL

在这里插入图片描述

📙 读取表格指定表单的行列数

  • dll_Excel_Open(const char* filename, const char* sheetName, char* error_info) :打开表格,函数执行成功,返回值为1,否则为0。该函数的返回值如果为0则表示打开失败,否则表示打开成功。

    • filename : 文件路径。
    • sheetName:表单的名称
    • error_info:如果表格打开失败,通过该参数返回错误日志信息
  • dll_Excel_Get_Sheet_Dimensions(long* rowCount, long* colCount):该函数返回表单的行数和列数,执行成功返回值为1,否则为0

    • rowCount : 表格行数。
    • colCount: 表格列数。
  • 注意

    • const MAX_SIZE = 2000; //必须为2000,和dll中定义的MAX_SIZE保持一致
    • char Data[1000][MAX_SIZE];:读取表格整行或者整列数据时,要保证传入的数组大小比实际的行列数要大,否则会产生访问越界等错误导致的DLL崩溃。
/*@!Encoding:65001*/includes
{#if X64#pragma library("..\..\OpenXLSX_Demo_Win64\x64\Debug\open_xlsx_demo_win64.dll")#else#pragma library("..\..\OpenXLSX_Demo_Win32\Debug\open_xlsx_demo_win32.dll")#endif
}on key '1'
{ const MAX_SIZE = 2000; //必须为2000,和dll中定义的MAX_SIZE保持一致。char cell_data[MAX_SIZE];char Data[1000][MAX_SIZE];char err_infor[MAX_SIZE];long i,j,ret;long rowCount,colCount;ret = dll_Excel_Open("D:\\Project\\Excel\\CANoe_Demo\\node\\CANUDS2.xlsx","诊断",err_infor);if(ret == 0){write("打开表格失败:%s",err_infor);return ;}if(1){write("********** 获取行列数 **********");dll_Excel_Get_Sheet_Dimensions(rowCount,colCount);write("表格行数rowCount = %d ; 表格列数colCount = %d",rowCount,colCount);}
}

输出结果:

Program / Model	********** 获取行列数 **********
Program / Model	表格行数rowCount = 235 ; 表格列数colCount = 7

表格的大致内容如下:

  • 说明:这个表格中是由中英文字符组成的,本DLL是支持中文字符的。

在这里插入图片描述

📙 读/写单元格数据

  • dll_Excel_Get_Cell_Data (char* Cel_Pos, char* cellData, long maxSize):该函数通过单元格定位读取单元格数据,如果函数执行成功,返回返回值为单元格的字节大小,否则返回-1。
    • Cel_Pos :单元格的定位,比如“B2”等
    • cellData:返回数据的一维字符数组,(表格中的所有类型数据统一转为字符串返回,注意日期类型的单元格暂未处理,可能返回值为一串数值
    • maxSize:指定的最大返回的单元格字符数
  • dll_Excel_Set_Cell_Data(char* Cel_Pos, const char* cellData: 该函数通过单元格定位写入单元格数据,返回值如果为0则表示失败,否则表示成功。
    • Cel_Pos :单元格的定位,比如“B2”等
      • cellData:设置的单元格数据
on key '1'
{ //...省略代码if(1){write("********** 设置单元格数据测试 **********");strncpy(cell_data, "测试数据5678", MAX_SIZE);ret = dll_Excel_Set_Cell_Data("B8", cell_data);write("ret = %d; Data[B8] = %s ",ret,cell_data);}if(1) {write("********** 读取单元格数据测试 **********");ret = dll_Excel_Get_Cell_Data("B8", cell_data,MAX_SIZE);write("ret = %d; Data[B8] = %s ",ret,cell_data);}//...省略代码

输出结果:

Program / Model	********** 获取行列数 **********
Program / Model	表格行数rowCount = 235 ; 表格列数colCount = 7
Program / Model	********** 设置单元格数据测试 **********
Program / Model	ret = 16; Data[B8] = 测试数据5678 
Program / Model	********** 读取单元格数据测试 **********
Program / Model	ret = 16; Data[B8] = 测试数据5678 

📙 读/写 行数据

  • dll_Excel_Set_Row_Data(long row, long start_col,long length, char rowData[][MAX_SIZE]) :该函数向表格中某一行写入数据,如果写入成功,则函数返回表单的列数,否则返回小于0的值。
    • row : 指定的行数,1表示第一行,不可从0索引。
    • start_col:从哪一列开始写入,1表示第一列,不可从0索引。
    • length:写入的单元格个数。
    • rowData:写入的二维数组,(注意:所有数据以字符串方式写入
  • dll_Excel_Get_Row_Data(long row, char rowData[][MAX_SIZE]): 该函数读取指定行数的表格数据,如果数据返回成功,则函数返回表单的列数,否则返回小于0的值。
on key '1'
{ //...省略代码if(1){char setData[5][MAX_SIZE] = { "设置行 11", "设置行 22" , "设置行 33", "设置行 44", "设置行 55" };write("********** 设置第5行,从第1列开始填充5个数据 **********");colCount = dll_Excel_Set_Row_Data(5, 1, 5,setData);write("colCount = %d",colCount);ret =  dll_Excel_Save();write("保存表格 = %d;",ret);}if(1){write("********** 读取行数据测试 **********");colCount = dll_Excel_Get_Row_Data(5, Data);write("colCount = %d",colCount);for(i = 0;i<colCount;i++){write("行数据 Data[%d] = %s",i,Data[i]);}  }//...省略代码

输出结果:

Program / Model	********** 获取行列数 **********
Program / Model	表格行数rowCount = 235 ; 表格列数colCount = 7
Program / Model	********** 设置第5行,从第1列开始填充5个数据 **********
Program / Model	colCount = 7
Program / Model	保存表格 = 1;
Program / Model	********** 读取行数据测试 **********
Program / Model	colCount = 7
Program / Model	行数据 Data[0] = 设置行 11
Program / Model	行数据 Data[1] = 设置行 22
Program / Model	行数据 Data[2] = 设置行 33
Program / Model	行数据 Data[3] = 设置行 44
Program / Model	行数据 Data[4] = 设置行 55
Program / Model	行数据 Data[5] = WriteTest4
Program / Model	行数据 Data[6] = WriteTest5

表格的大致内容如下:

在这里插入图片描述

📙 读/写 列数据

  • dll_Excel_Set_Col_Data(long col, long start_row,long length, char rowData[][MAX_SIZE]) :该函数向表格中某一列写入数据,如果写入成功,则函数返回表单的行数,否则返回小于0的值。
    • col : 指定的列数,1表示第一列,不可从0索引。
    • start_row:从哪一行开始写入,1表示第一列,不可从0索引。
    • length:写入的单元格个数。
    • rowData:写入的二维数组,(注意:所有数据以字符串方式写入
  • dll_Excel_Get_Col_Data(long col, char colData[][MAX_SIZE]): 该函数读取指定列数的表格数据,如果数据返回成功,则函数返回表单的行数,否则返回小于0的值。
//...省略代码if(1){char setData[5][MAX_SIZE] = { "设置列 11", "设置列 22" , "设置列 33", "设置列 44", "设置列 55" };write("********** 设置第1列,从第6行开始填充5个数据 **********");rowCount = dll_Excel_Set_Col_Data(1, 6,5,setData);//设置第1列,从第6行开始,填充5个数据write("rowCount = %d",rowCount);}if(1){  write("********** 读取列数据测试 **********");rowCount = dll_Excel_Get_Col_Data(1, Data);for(i = 0;i<rowCount;i++){write("列数据Data[%d] = %s",i,Data[i]);}      }if(1){ret =  dll_Excel_Save();write("保存表格 = %d;",ret);dll_Excel_Close();}
}//...省略代码

输出结果:

Program / Model	********** 获取行列数 **********
Program / Model	表格行数rowCount = 235 ; 表格列数colCount = 7
Program / Model	********** 设置第1列,从第6行开始填充5个数据 **********
Program / Model	rowCount = 235
Program / Model	********** 读取列数据测试 **********
Program / Model	列数据Data[0] = WriteTest1
Program / Model	列数据Data[1] = WriteTest2
Program / Model	列数据Data[2] = WriteTest3
Program / Model	列数据Data[3] = WriteTest4
Program / Model	列数据Data[4] = 设置行 11
Program / Model	列数据Data[5] = 设置列 11
Program / Model	列数据Data[6] = 设置列 22
Program / Model	列数据Data[7] = 设置列 33
Program / Model	列数据Data[8] = 设置列 44
Program / Model	列数据Data[9] = 设置列 55
Program / Model	列数据Data[10] = 00WriteTest44
Program / Model	列数据Data[11] = 00WriteTest55
Program / Model	列数据Data[12] = DIA_PRO_10_PHY_09
Program / Model	列数据Data[13] = DIA_PRO_10_PHY_10
Program / Model	列数据Data[14] = 
.。。。。

表格的大致内容如下:

在这里插入图片描述

📙 保存与关闭

  • dll_Excel_Save():保存表格,有对表格写操作时,必须调用该函数保存表格才能生效,注意调用改函数时要保证操作的表格处于关闭状态,否则也很会保存失败
  • dll_Excel_Close():关闭表格。

📙 源码获取

  • 博主花了很长的时间和精力做了这个,希望对您有帮助!

  • 基于CAPL语法生成的解析xlsx文件的DLL文件(DLL以及CANoe Demo工程)

  • 基于CAPL语法生成的解析xlsx文件的DLL文件(C++源码以及CANoe Demo工程)
    23

7

  • 🚩要有最朴素的生活,最遥远的梦想,即使明天天寒地冻,路遥马亡!

  • 🚩如果这篇博客对你有帮助,请 “点赞” “评论”“收藏”一键三连 哦!码字不易,大家的支持就是我坚持下去的动力。
    18
http://www.dtcms.com/wzjs/223062.html

相关文章:

  • 上海有哪些做网站的公司什么叫做网络营销
  • 网站链接怎么做二维码买外链网站
  • 哪个网站专门做二手电脑手机的网络服务商电话
  • 大庆建设银行网站首页小程序开发公司
  • 山西做网站的公司房地产网站模板
  • 网站备案说主体已注销营销策划公司名字
  • 礼品网站商城怎么做域名查询网入口
  • 设计制作商城网站微信小程序开发文档
  • 男女做暖暖的视频试看网站打开百度网页版
  • 2023年2月疫情最新消息怎么把网站排名优化
  • 胶州做网站公司怀化网络推广
  • 可以下载电影的网站怎么做代推广平台
  • b2c网站购物流程网站推广的方式有
  • 库尔勒市建设路街道办网站seo排名软件怎么做
  • 我的网站没备案怎么做淘宝客推广联合早报 即时消息
  • 了解c2c电商网站的特点百度推广公司哪家比较靠谱
  • 什么编程语言做网站安全抖音网络营销案例分析
  • 如何做网站的关键词排名网店关键词怎么优化
  • 西安做网站的公司哪家好seo快速培训
  • 南通外贸网站推广网络推广外包怎么样
  • pacharm做腾讯视频网站武汉seo优
  • 网络推广软件工具性价比高seo排名
  • 怎样推广自己做的网站广州全网推广
  • 做关键词优化需要修改网站标题搜索关键词排名优化
  • 亚马逊品牌备案的网站怎么做如何创建自己的网站
  • 宁波优化网站排名软件如何免费发布广告
  • 网站建设 铭阳传媒合肥百度竞价推广代理公司
  • 手机web 网站网站怎么做优化排名
  • 网站提示未备案软件外包公司排名
  • 智慧团建网站登录入口官网官方推广平台