最近开发使用到 libxl,用的是3.8.0 破解版。

具体过程:

1、将lib.dll放在exe同目录下,在代码中引用 libxl.lib

  #pragma comment(lib, ".\\Lib\\libxl.lib")

2、包含头文件 libxl.h

3、实例

//m_strFilePath为excel文件的完整路径
CString ext = ::PathFindExtension(m_strFilePath);
if(ext.CompareNoCase(L".xlsx") == 0)
book = xlCreateXMLBook(); //针对.xlsx
else
book = xlCreateBook();  //针对.xls if(!book)
{
return;
} const wchar_t * x = L"Halil Kural";
const wchar_t * y = L"windows-2723210a07c4e90162b26966a8jcdboe";
book->setKey(x, y); //设置key,即破解^_^ if(!book->load(m_strFilePath))
{
return;
} int sheetCount = book->sheetCount(); //工作表总数量
for (int index = 0; index < sheetCount; ++index)
{
Sheet *sheet =book->getSheet(index++);
if(!sheet)
continue;
int firstRow = sheet->firstRow(); //有数据的第一行行号
int lastRow = sheet->lastRow();  //有数据的最后一行行号
int firstCol = sheet->firstCol(); //有数据的第一列列号
int lastCol = sheet->lastCol(); //有数据的最后一列列号 //找出表头(测试数据)
map<int,wstring> mapColNames;
for(int c = firstCol; c < lastCol; ++c)
{
const wchar_t* str = sheet->readStr(firstRow, c);
if(!str)
continue;
mapColNames[c] = str;
} //确定每个表头代表的意义(测试数据)
map<int,eFIELD> mapColTypes;
for (auto it = mapColNames.begin(); it != mapColNames.end(); ++it)
{
eFIELD e = GetFieldTypeByName(it->second.c_str());
mapColTypes[it->first] = e;
} //逐行读取数据
for (int row = firstRow+1; row < lastRow; ++row)
{
for(int c = firstCol; c < lastCol; ++c)
{
CString strValue;
CellType t = sheet->cellType(row, c);
if(t == CELLTYPE_NUMBER)
{
double db = sheet->readNum(row, c);//test
LONG64 number = (LONG64)db;
if(number > 0)
strValue.Format(L"%I64d", number);
}
else
const wchar_t* s = sheet->readStr(row, c); //读取内容
}
         }
}

  

4、读取时间格式的数据

 CString strValue;
bool bDate = sheet->isDate(row, col);
if (bDate)
{
double db = sheet->readNum(row, col);
int year=, month=, day=;
bool b = book->dateUnpack(db, &year, &month, &day); //将读取的时间 转换为时间戳
unsigned __int64 ftNow;
SYSTEMTIME time;
ZeroMemory(&time, sizeof(SYSTEMTIME)),
time.wYear = year;
time.wMonth = month;
time.wDay = day;
SystemTimeToFileTime(&time,(LPFILETIME)&ftNow);
__int64 timeStamp = (__int64)((ftNow-0x019db1ded53e8000)/);//毫秒
strValue.Format(L"%I64d", timeStamp);
}

libxl 的使用,读取时间格式的更多相关文章

  1. poi导入读取时间格式问题

    万能处理方案: 所有日期格式都可以通过getDataFormat()值来判断 yyyy-MM-dd-----14 yyyy年m月d日--- 31 yyyy年m月-------57 m月d日  ---- ...

  2. 使用POI读取xlsx文件,包含对excel中自定义时间格式的处理

    package poi; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExcepti ...

  3. NPOI 读取excel的时候,时间格式的处理

    excel的时间格式是:CellType.Numeric 要判断时间还需要方法:DateUtil.IsCellDateFormatted(cell)的帮助: 示例代码如下: ICell cell = ...

  4. iOSDate时间格式(转)

    在开发iOS程序时,有时候需要将时间格式调整成自己希望的格式,这个时候我们可以用NSDateFormatter类来处理.例如: //实例化一个NSDateFormatter对象 NSDateForma ...

  5. iOS开发之时间格式的转化

    在开发iOS程序时,有时候需要将时间格式调整成自己希望的格式,这个时候我们可以用NSDateFormatter类来处理. 例如:如何将格式为“12-May-14 05.08.02.000000 PM” ...

  6. POI教程之第二讲:创建一个时间格式的单元格,处理不同内容格式的单元格,遍历工作簿的行和列并获取单元格内容,文本提取

    第二讲 1.创建一个时间格式的单元格 Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿 Sheet sheet=wb.createSheet("第一个 ...

  7. IOS时间格式转换

    在开发iOS程序时,有时候需要将时间格式调整成自己希望的格式,这个时候我们可以用NSDateFormatter类来处理. 例如:如何将格式为“12-May-14 05.08.02.000000 PM” ...

  8. IOS 时间格式 时间转换 大总结

    //实例化一个NSDateFormatter对象 NSDateFormatter *dateFormatter = [[NSDateFormatteralloc] init]; //设定时间格式,这里 ...

  9. Eclipse 改动凝视的 date time 日期时间格式,即${date}变量格式

    Eclipse 改动凝视的 date time 日期时间格式,即${date}变量格式 找到eclipse安装文件夹以下的plugins文件夹,搜索 org.eclipse.text ,找到一个jar ...

随机推荐

  1. C语言程序设计实习报告

    C语言程序设计实习报告 简介 语言实践心得体会范文在科技高度发展的今天,计算机在人们之中的作用越来越突出.而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此, ...

  2. 20145307陈俊达《网络对抗》Exp5 MSF基础应用

    20145307陈俊达<网络对抗>Exp5 MSF基础应用 基础问题回答 用自己的话解释什么是exploit,payload,encode? exploit就相当于是载具,各式各样的漏洞在 ...

  3. bzoj 3505 数三角形 - 组合数学

    给定一个nxm的网格,请计算三点都在格点上的三角形共有多少个.下图为4x4的网格上的一个三角形. 注意三角形的三点不能共线. Input 输入一行,包含两个空格分隔的正整数m和n. Output 输出 ...

  4. linux平台关闭某个进程的脚本

    在开发LINUX平台下的程序时,经常需要为我们的开发的程序写启动程序和关闭程序的脚本. 启动脚本比较好做,关闭程序脚本如下: 具体思路是通过ps命令找到程序的进程ID号,然后通过Kill命令将程序Ki ...

  5. shell脚本中如何使scp不输入密码即可传输文件

    答:使用ssh密钥对 示例如下: 如果A机想要获取B机上的文件,那么需要将在A机上生成的公钥放置到B机上的指定位置~/.ssh/authorized_keys 问题一: 如何在A机上生成ssh密钥对? ...

  6. Nlog、elasticsearch、Kibana以及logstash在项目中的应用(二)

    上一篇说如何搭建elk的环境(不清楚的可以看我的上一篇博客http://www.cnblogs.com/never-give-up-1015/p/5715904.html),现在来说一下如何用Nlog ...

  7. YOLOv3-darknet 内容解析

    目录 Yolov3-darknet 内容解析 多标签分类预测 跨尺度预测 网络结构改变 reference Yolov3-darknet 内容解析 YOLOv3是到目前为止,速度和精度最均衡的目标检测 ...

  8. sliva数据库简介--转载

    sliva rRNA数据库(http://www.arb-silva.de/)用来检查和比对RNA序列,既可以针对16S/18S,SSU,也可以针对23S/28S, LSU,包括了Bacteria, ...

  9. Codeforces Round #305 (Div. 2) D. Mike and Feet 单调栈

    D. Mike and Feet time limit per test 1 second memory limit per test 256 megabytes input standard inp ...

  10. jekins 插件离线安装

    官网插件地址:http://updates.jenkins-ci.org/download/plugins/ 系统管理->插件管理->高级 选择一个下载好的插件,然后点击上传即可 然后就会 ...