MFC中读入excel数据时需要wchar_t *str转换为CString,在读入过程中,我先直接使用下面的代码:
CString cstring(sheet->readStr(row, col));
在运行时,很奇怪,可以读出前2/3的数据,但是从第264个数据后就全是""无效的,其实我的excel后面还有值,不应该是空值。
根据libxl的官方文档,
const wchar_t* readStr(int row, int col, Format** format = 0)
Reads a string and its format from the cell. Don’t release a return pointer manually. Copy a return value to your memory buffer or variable immediately if neccessary.
可能不能直接对return的指针进行强制转换,因此我修改代码如下:
const wchar_t *pwstr = sheet->readStr(row, col); CString cstring(pwstr);
得到的值的结果就是正常的了,264后面的也能读到。



