//引入C++库
#include <iostream>
using namespace std;
// 引入libxl.h
#include "libxl.h"
#pragma comment(lib, "libxl.lib")
using namespace libxl;
//表格操作对象
Book *pDataBook = NULL; //tooldata Excel文件指针
Sheet *pRecordSheet = NULL; //runrecord表sheet操作对象
libxl::Font *pFontSize = NULL; //字体大小
libxl::Font *pFontRed = NULL; //红色字体
libxl::Font *pFontGreen = NULL; //绿色字体
Format* pBoldFormatRed = NULL; //红色格式
Format* pBoldFormatGreen = NULL; //绿色格式
Format* pBoldFormatSize = NULL; //字体大小格式
Format* pDateFormat = NULL; //居中显示
//声明表格操作函数
void CreateBook(); //新建一个Excel
void CreateStudenInfoHead(); //创建学生信息表头
void CreateStudenScoreHead(); //创建学生成绩表头
void SaveBook(char *pFilePath); //保存Excel内容
void AddTab(char *pTabName); //添加一个tab(即:Sheet表单)
void WriteData2Sheet(const char *pStudenName, const char *pClassName, const int iAge, const char *pSex);//写学生信息到表(指定行)
void WriteScore2Sheet(const char *pStudenName, const char *pClassName, const double fScore); //写学生成绩到表(指定行)
//统计写了多少行
int iRowCount = 2;
int main(int argc, char *argv[])
{
//1 新建一个Excel
CreateBook();
//2 创建学生信息表头
CreateStudenInfoHead();
//3 写一行学生信息到表中
WriteData2Sheet("朱晓明", "二年级1班", 8, "男");
WriteData2Sheet("陈大勇", "二年级6班", 6, "男");
WriteData2Sheet("李红霞", "二年级4班", 8, "女");
WriteData2Sheet("谭伟强", "二年级1班", 9, "男");
WriteData2Sheet("范冰冰", "二年级3班", 8, "女");
//4 创建成绩表头
CreateStudenScoreHead();
//5 写一行学生数学成绩到表中
WriteScore2Sheet("朱晓明", "二年级1班", 98.5);
WriteScore2Sheet("陈大勇", "二年级6班", 68.6);
WriteScore2Sheet("李红霞", "二年级4班", 88.8);
WriteScore2Sheet("谭伟强", "二年级1班", 86.3);
WriteScore2Sheet("范冰冰", "二年级3班", 58.9);
//6 保存Excel内容
SaveBook("C:\\Users\\MARK\\Desktop\\studen.xls");
return 0;
}
/*****************************************************************************
* 函数名称:CreateBook
* 函数功能:新建一个Excel
* 输入参数: 无
* 输出参数: 无
* 返回值 : 无
* 日 期 : 2018.9.18
* 作 者 : mark-puls
*****************************************************************************/
void CreateBook()
{
if(pDataBook) pDataBook->release();
pDataBook = xlCreateBook();//创建一个二进制格式的XLS(Execl97-03)的实例,在使用前必须先调用这个函数创建操作excel的对象
}
/*****************************************************************************
* 函数名称:CreateStudenInfoHead
* 函数功能:创建学生信息表头
* 输入参数: 无
* 输出参数: 无
* 返回值 : 无
* 日 期 : 2018.9.18
* 作 者 : mark-puls
*****************************************************************************/
void CreateStudenInfoHead()
{
iRowCount = 2;
//1 添加一个tab
pRecordSheet = pDataBook->addSheet("学生信息");
//2 创建tab的属性
pFontSize = pDataBook->addFont();//创建字体大小对象
pFontSize->setColor(COLOR_BLACK);//颜色为黑色
pFontSize->setSize(15); //字体大小为15
//3 设置表头的属性
pBoldFormatSize = pDataBook->addFormat();//设置字体格式指针
pBoldFormatSize->setFont(pFontSize);
pBoldFormatSize->setAlignV(ALIGNV_CENTER);//表头垂直居中显示
pBoldFormatSize->setAlignH(ALIGNH_CENTER);//表头水平居中显示
//4 把表头属性写到表里
pRecordSheet->writeStr(0, 0, "学生信息", pBoldFormatSize); //设置第一行的内容
pRecordSheet->setMerge(0, 0, 0, 3);
//5 设置行列属性
pDateFormat = pDataBook->addFormat();
pDateFormat->setAlignV(ALIGNV_CENTER);
pDateFormat->setAlignH(ALIGNH_CENTER);
pRecordSheet->setRow(1, 18);
pRecordSheet->setCol(0, 0, 20);
pRecordSheet->setCol(1, 1, 14);
pRecordSheet->setCol(2, 2, 10);
pRecordSheet->setCol(3, 3, 22);
pRecordSheet->writeStr(1, 0, "姓名", pDateFormat); //标题第1列 固定模式
pRecordSheet->writeStr(1, 1, "班级", pDateFormat); //标题第2列 固定模式
pRecordSheet->writeStr(1, 2, "年龄", pDateFormat); //标题第3列 固定模式
pRecordSheet->writeStr(1, 3, "性别", pDateFormat); //标题第4列 固定模式
//红色字体属性
pFontRed = pDataBook->addFont();//创建一个红色字体对象
pFontRed->setColor( COLOR_RED); //设置红颜色
pBoldFormatRed = pDataBook->addFormat();//设置字体格式指针
pBoldFormatRed->setFont(pFontRed); //应用上面设置的字体
pBoldFormatRed->setAlignV(ALIGNV_CENTER); //表头居中显示
pBoldFormatRed->setAlignH(ALIGNH_CENTER);
//绿色字体属性
pFontGreen = pDataBook->addFont(); //创建一个绿色字体对象
pFontGreen->setColor(COLOR_GREEN); //设置绿颜色
pBoldFormatGreen = pDataBook->addFormat();//设置字体格式指针
pBoldFormatGreen->setFont(pFontGreen); //应用上面设置的字体
pBoldFormatGreen->setAlignV(ALIGNV_CENTER); //表头居中显示
pBoldFormatGreen->setAlignH(ALIGNH_CENTER);
}
/*****************************************************************************
* 函数名称:CreateStudenScoreHead
* 函数功能:创建学生成绩表头
* 输入参数: 无
* 输出参数: 无
* 返回值 : 无
* 日 期 : 2018.9.18
* 作 者 : mark-puls
*****************************************************************************/
void CreateStudenScoreHead()
{
iRowCount = 2;
//1 添加一个tab
pRecordSheet = pDataBook->addSheet("学生成绩单");
//2 创建tab的属性
pFontSize = pDataBook->addFont();//创建字体大小对象
pFontSize->setColor(COLOR_BLACK);//颜色为黑色
pFontSize->setSize(15); //字体大小为15
//3 设置表头的属性
pBoldFormatSize = pDataBook->addFormat();//设置字体格式指针
pBoldFormatSize->setFont(pFontSize);
pBoldFormatSize->setAlignV(ALIGNV_CENTER);//表头垂直居中显示
pBoldFormatSize->setAlignH(ALIGNH_CENTER);//表头水平居中显示
//4 把表头属性写到表里
pRecordSheet->writeStr(0, 0, "学生成绩单", pBoldFormatSize); //设置第一行的内容
pRecordSheet->setMerge(0, 0, 0, 2);
//5 设置行列属性
pDateFormat = pDataBook->addFormat();
pDateFormat->setAlignV(ALIGNV_CENTER);
pDateFormat->setAlignH(ALIGNH_CENTER);
pRecordSheet->setRow(1, 18);
pRecordSheet->setCol(0, 0, 20);
pRecordSheet->setCol(1, 1, 14);
pRecordSheet->setCol(2, 2, 10);
pRecordSheet->setCol(3, 3, 22);
pRecordSheet->writeStr(1, 0, "姓名", pDateFormat); //标题第1列 固定模式
pRecordSheet->writeStr(1, 1, "班级", pDateFormat); //标题第2列 固定模式
pRecordSheet->writeStr(1, 2, "成绩", pDateFormat); //标题第3列 固定模式
}
/*****************************************************************************
* 函数名称:AddTab
* 函数功能:添加一个tab(即:Sheet表单)
* 输入参数: pTabName tab的名字
* 输出参数: 无
* 返回值 : 无
* 日 期 : 2018.9.18
* 作 者 : mark-puls
*****************************************************************************/
void AddTab(char *pTabName)
{
//判断数据合法性
if (pDataBook == NULL || pBoldFormatSize == NULL) return;
//添加一个tab
pRecordSheet = pDataBook->addSheet(pTabName); //添加一个工作表(tab名字)
pRecordSheet->writeStr(0, 0, pTabName, pBoldFormatSize); //表头名字
}
/*****************************************************************************
* 函数名称:WriteData2Sheet
* 函数功能:写数据到表(指定行)
* 输入参数1: pStudenName 学生名称
* 输入参数2: pClassName 班级名称
* 输入参数3: iAge 学生年龄
* 输入参数4: pSex 学生性别
* 输出参数: 无
* 返回值 : 无
* 日 期 : 2018.9.18
* 作 者 : mark-puls
*****************************************************************************/
void WriteData2Sheet(const char *pStudenName, const char *pClassName, const int iAge, const char *pSex)
{
//每次写4列
pRecordSheet->writeStr(iRowCount, 0, pStudenName, pDateFormat);
pRecordSheet->writeStr(iRowCount, 1, pClassName, pDateFormat);
pRecordSheet->writeNum(iRowCount, 2, iAge, pDateFormat);
pRecordSheet->writeStr(iRowCount, 3, pSex,
没有合适的资源?快使用搜索试试~ 我知道了~
vs2010下使用libXL生成Excel表格
共30个文件
tlog:11个
pdb:2个
lastbuildstate:1个
1星 需积分: 26 22 下载量 128 浏览量
2018-09-18
13:04:43
上传
评论
收藏 4.61MB RAR 举报
温馨提示
这是一个在vs2010下使用libXL库生成Excel表格的例子,这个例子可以在vs2010上正常打开。例子里面演示了如何使用libXL库的接口创建一个Excel表格,如何添加一个tab页,如在往tab页写数据,如何设置数据的颜色,字体大小,在任意行写数据等等
资源推荐
资源详情
资源评论
收起资源包目录
testLibXL.rar (30个子文件)
studen.xls 7KB
testLibXL
ipch
testlibxl-6d75d947
testlibxl-74073387.ipch 14.56MB
Debug
testLibXL.pdb 635KB
testLibXL.ilk 369KB
testLibXL.exe 32KB
libxl.dll 5.65MB
testLibXL.sdf 5.64MB
testLibXL
Debug
CL.write.1.tlog 342B
vc100.idb 235KB
link.6756.write.1.tlog 2B
testLibXL.log 3KB
link.6756.read.1.tlog 2B
link.command.1.tlog 3KB
vc100.pdb 260KB
CL.read.1.tlog 10KB
testLibXL.lastbuildstate 59B
testLibXL.vcxprojResolveAssemblyReference.cache 713B
link.5552.read.1.tlog 2B
link.write.1.tlog 438B
link.5552.write.1.tlog 2B
cl.command.1.tlog 626B
main.obj 48KB
link.read.1.tlog 6KB
testLibXL.write.1.tlog 0B
testLibXL.vcxproj.user 143B
testLibXL.vcxproj.filters 942B
main.cpp 9KB
testLibXL.vcxproj 4KB
testLibXL.sln 894B
testLibXL.suo 14KB
共 30 条
- 1
资源评论
- znzdsk2023-09-12文件不全。没用
mark-puls
- 粉丝: 171
- 资源: 82
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Spring Boot和Shiro的在线考试系统.zip
- (源码)基于Arduino的MetroMoney系统.zip
- 毕业设计《基于SSM实验室资源统一管理平台(可升级SpringBoot)》+Java项目源码+文档说明+论文
- Clean Minimalist GUI Pack 3.0.3.unitypackage
- CocosCreator源码资源basement(勇闯地下室)
- (源码)基于Android平台的电影票务管理系统.zip
- 集成DCDC的协议芯片
- CocosCreator源码资源Z-snake2(贪吃蛇)
- (源码)基于C++的CNC控制系统.zip
- centos镜像源换成国内
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功