libxl 的使用,读取时间格式
最近开发使用到 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 的使用,读取时间格式的更多相关文章
- poi导入读取时间格式问题
万能处理方案: 所有日期格式都可以通过getDataFormat()值来判断 yyyy-MM-dd-----14 yyyy年m月d日--- 31 yyyy年m月-------57 m月d日 ---- ...
- 使用POI读取xlsx文件,包含对excel中自定义时间格式的处理
package poi; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExcepti ...
- NPOI 读取excel的时候,时间格式的处理
excel的时间格式是:CellType.Numeric 要判断时间还需要方法:DateUtil.IsCellDateFormatted(cell)的帮助: 示例代码如下: ICell cell = ...
- iOSDate时间格式(转)
在开发iOS程序时,有时候需要将时间格式调整成自己希望的格式,这个时候我们可以用NSDateFormatter类来处理.例如: //实例化一个NSDateFormatter对象 NSDateForma ...
- iOS开发之时间格式的转化
在开发iOS程序时,有时候需要将时间格式调整成自己希望的格式,这个时候我们可以用NSDateFormatter类来处理. 例如:如何将格式为“12-May-14 05.08.02.000000 PM” ...
- POI教程之第二讲:创建一个时间格式的单元格,处理不同内容格式的单元格,遍历工作簿的行和列并获取单元格内容,文本提取
第二讲 1.创建一个时间格式的单元格 Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿 Sheet sheet=wb.createSheet("第一个 ...
- IOS时间格式转换
在开发iOS程序时,有时候需要将时间格式调整成自己希望的格式,这个时候我们可以用NSDateFormatter类来处理. 例如:如何将格式为“12-May-14 05.08.02.000000 PM” ...
- IOS 时间格式 时间转换 大总结
//实例化一个NSDateFormatter对象 NSDateFormatter *dateFormatter = [[NSDateFormatteralloc] init]; //设定时间格式,这里 ...
- Eclipse 改动凝视的 date time 日期时间格式,即${date}变量格式
Eclipse 改动凝视的 date time 日期时间格式,即${date}变量格式 找到eclipse安装文件夹以下的plugins文件夹,搜索 org.eclipse.text ,找到一个jar ...
随机推荐
- C++11 正则表达式——实例系统(转载)
一.用正则表达式判断邮箱格式是否正确 1 #include <regex> #include <iostream> #include <string> bool i ...
- P3952 NOIP2017 时间复杂度
写了两三个小时,麻烦倒是不麻烦,要考虑清楚,想全了 只过了样例提交是不是傻,要自己造数据 数据不大可以用STL 建议自己刚一下,不看代码 #include <iostream> #incl ...
- AtCoder 杂题训练
前言: 因为要普及了,今年没一等就可以退役去学文化课了,所以暑假把历年noip普及组都刷了一遍,离noip还有50+天,想弄点强化训练什么的. 想了想,就这些天学文化课之余有空就把AtCoder之前那 ...
- [TODO]The way to Go(9): 基本类型和运算符
参考: Github: Go Github: The way to Go 基本类型和运算符 表达式是一种特定的类型的值,它可以由其它的值以及运算符组合而成. 每个类型都定义了可以和自己结合的运算符集合 ...
- UVa 11100 旅行2007
https://vjudge.net/problem/UVA-11100 题意: 给定n个正整数,把它们划分成尽量少的严格递增序列,尽量均分. 思路: 因为必须严格递增,所以先统计每个数字出现的次数, ...
- 【Python】【元编程】【三】【元类】
'''# str. type 和 LineItem 是object 的子类 str. object 和 LineItem 是 type 的实例,因为它们都是类object 类和 type 类之间的关系 ...
- html 画圆
<html> <head> <script type = "text/javascript" src = "https://d3js.org ...
- c assert 用法
#include <stdio.h> /* printf */ #include <assert.h> /* assert */ void print_number(int* ...
- 精通移动app测试实战
- HTML5-form表单
什么是表单? 01.获取用户的输入 ==>收集数据 02.将用户的输入发送到服务器 ==>与服务器进行交互 相关属性: action:我们收集完用户的信息之后,需要提交的服务器地址 ...