#include <stdio.h>
#include <string.h>
#include <wchar.h>
#include <stdbool.h>
#include <errno.h>
#include <locale.h>
#include <xlslib/xlslib.h>
#include <iconv.h>
#include <stdlib.h>
/*====================================================================
函数名 : code_convert
功能 : //编码转换:从from_charset编码转为to_charset编码
参数说明 :
from_charset in --源编码类型
to_charset in --目标编码类型
inbuf in --要编码转换的字符串
inlen in --要编码转换的字符串长度
outbuf out --编码转换后的字符串
outlen out --编码转换后的字符串长度
返回值 : 0--成功
!0--失败
函数说明 :
====================================================================
修改记录
2013-10-09 linzy 创建
====================================================================*/
int code_convert(char *from_charset,char *to_charset,char *inbuf,int inlen,char *outbuf,int outlen)
{
iconv_t cd;
//int rc;
char **pin = &inbuf;
char **pout = &outbuf;
cd = iconv_open(to_charset,from_charset);
if (cd==0)
{
return -1;
}
memset(outbuf,0,outlen);
if (iconv(cd,pin,&inlen,pout,&outlen)==-1)
{
return -1;
}
iconv_close(cd);
return 0;
}
int main (int argc, char *argv[])
{
workbook *wb = NULL;
worksheet *ws;
char str[100];
int i,j,k;
char str1[100];
char sheet_name[10+1];
char flag='1';
printf("Current locale is %s!\n", setlocale(LC_ALL, NULL));
wb = xlsNewWorkbook();
ws = xlsWorkbookSheet(wb, "sheet1");
k = 1;
strcpy(sheet_name,"sheet1");
for(i=1; i <= 60000;i++)
{
//一sheet页超过30000新建一sheet页,多sheet页保存的时候一页最多只能保存32832行,
//要是超过了后面页的内容无法显示。要是单页保存最多只保存65536行
if(i <= 32831*k )
{
}
else
{
k++;
sprintf(sheet_name,"sheet%d",k);
ws = xlsWorkbookSheet(wb, sheet_name);
flag = '1';
}
if(flag == '1')
{
for(j =0;j<10;j++ )
{
memset(str,0x00,sizeof(str));
memset(str1,0x00,sizeof(str1));
sprintf(str,"第%d列",j);
code_convert("GBK","UTF-8",str,strlen(str),str1,sizeof(str1)); //中文的编码要转换成UTF-8
xlsWorksheetLabel(ws,0,j,str1,NULL);
}
flag ='0';
}
for(j =0;j<10;j++ )
{
xlsWorksheetLabel(ws,(i-(k-1)*32831),j,sheet_name,NULL);
}
}
strcpy(str,"test.xls");
int err = xlsWorkbookDump(wb, str);
xlsDeleteWorkbook(wb);
if (err != 0)
{
fprintf(stderr, "Dump xls file failed: I/O failure %d.\n", err);
return -1;
}
return 0;
}
linux c通过xlslib库生成excel报表
5星 · 超过95%的资源 需积分: 50 199 浏览量
2013-11-15
11:31:20
上传
评论
收藏 1.12MB ZIP 举报
zhenyong
- 粉丝: 6
- 资源: 2
最新资源
- 徐州市区shp边界文件
- 简易数字频率计设计(原理图、PCB、源码、分析报告)
- 20225207038罗丽文财管专2201班.rar
- Golang:通过Gin框架+Redis+责任链,实现一个简单的钉钉机器人,进行消息处理 ps:多应用版
- 基于cnn和AlexNet的铝材缺陷检测内含数据集和demo原型2种方法
- 2023年各城市PM2.5, PM10, SO2, NO2等环境空气质量数据
- go 语言 实现的 使用modbus 协议 通过DTU tcp 链接 采集数据
- SHELL脚本(全是干货)
- Windows屏幕录屏软件
- 2022年各城市PM2.5, PM10, SO2, NO2等环境空气质量数据
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
前往页