Tag: libxl

LibXL加载文件失败

这里是加载xls / xlsx文件的代码: int main() { BookHandle book = xlCreateBook(); if(book) { if(xlBookLoad(book, L"Slice.xlsx")) { SheetHandle sheet = xlBookGetSheet(book, 0); if(sheet) { double d; const wchar_t* s = xlSheetReadStr(sheet, 2, 1, 0); if(s) wprintf(L"%s\n", s); d = xlSheetReadNum(sheet, 3, 1, 0); printf("%g\n", d); } } xlBookRelease(book); } printf("\nPress any key to exit…"); _getch(); return 0; […]

libxl readNum()在短时间后崩溃

好的。 所以我使用libXLparsing.xlsx文件。 我遇到了一个奇怪的错误,因为当我调用sheet-> readNum(row,col)函数时,它完成了它的工作,但是只有45-47次。 我检查了很多文件。 检查了.xls和.xlsx。 完成多个debugging会话。 在〜45 readNums()之后,readNum()函数返回0,而不是站在这里的实数。 好的,这里是我的代码:(不要看couts,为我公司的人力资源服务) #define _CRT_SECURE_NO_DEPRECATE #include "libxl.h" #include <iostream> #include <stdio.h> #include <string> char dict[14] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N'}; FILE* file; unsigned int find_index(char* c) { for (auto i = 0; i < 14; i++) { if […]

无法获取LibXL xlSheetGetNamedRange的工作

我正在尝试使用LibXL。 我可以从工作表中提取数据,但需要一个函数来将Excel行和列索引转换为startRow,endRow,startCol,endCol “A1:B3”进入startRow = 0,endRow = 2,startCol = 0,endCol = 1(LibXL使用基于0的索引) 我尝试了所有我能想到的。 该库没有提供任何使用这个函数的例子,而且文档相当稀疏。 我究竟做错了什么? 这是我的代码: int main() { const char range[] = "B2:C3"; int i, ret, rowFirst=0, rowLast=0, colFirst=0, colLast=0; BookHandle book; SheetHandle sheet; book = xlCreateBook(); ret = xlBookLoad(book, "/home/jason/Downloads/panel.xls"); sheet = xlBookGetSheet(book, 0); ret = xlSheetGetNamedRange(sheet, &range[0], &rowFirst, &rowLast, &colFirst, &colLast); printf("ret from […]

致命错误:当内存使用率非常高时,调用一个非对象的成员函数write()

我一直在研究一个基于Web的应用程序来通过PHP导出数据库信息。 原始版本的应用程序最初生成了一个OpenXML工作表,但遇到超出特定行数(大约9500)的问题,生成的工作表太大而无法导入到Excel或OpenOffice中。 我随后重新编写了这个应用程序来使用libxl的php_excel包装器,这个包装器可以在testing中正常工作,但是当部署到活动服务器(与testing服务器相比数据量更大)时,这个过程的内存使用量将会达到只是2GB以下的一点点,然后失败,给这个错误: Call to a member function write() on a non-object in…etc etc. 现在,有趣的是代码适用于较小的数据集,如果我限制请求的数据量,我可以从数据库收集部分数据转储。 从所有调查中,当代码尝试引用未分配的对象时,会发生此错误。 以下是代码: $objPHPExcel = new ExcelBook($rcn, $rcl, true); for ($i=0;$i<$myCCount;$i++){ $myPCount = count($mySelection[$i]) for ($j=1;$j<$myPCount;$j++){ $myWorkSheet = $myAccountSelection[$i][0] . ' – ' . $myAccountSelection[$i][$j]; $thisSheet = $objPHPExcel->addSheet($myWorkSheet); for ($k=0;$k<count($myQueryArray);$k++){ $thisSheet->write(0, $k, $titleList[$myQueryArray[$k]]); //Error on this line } //The rest is […]

libXL与php_excel读取性能

我必须阅读PHP中的大型Excel文件(> 2M单元格)。 我曾尝试PHP类phpExcel,但性能更差。 现在,我find了libXL Libary( http://www.libxl.com/ )和PHP包装器php_excel( https://github.com/iliaal/php_excel )。 有没有人阅读性能和内存/ CPU使用经验?

const char *不被C ++正确解释为Excel库

我正在尝试使用libXl将文本从C ++程序输出到Excel文件。 问题在于这个库函数: bool writeStr(int row, int col, const wchar_t* value, Format* format = 0) 将string写入指定格式的单元格中。 如果格式等于0,则格式被忽略。 string在内部复制,并可以在调用此方法后销毁。 如果发生错误,则返回false。 获取Book :: errorMessage()的错误信息。 如果我将input作为像“Hello World”这样的string文字input,则显示正确。 但是,如果我尝试将input作为types为const char *的variables,它将显示垃圾。 以下是我的代码。 MyCompany::company是一个QString 。 const char* companyName = MyCompany::company.toStdString().c_str(); sheet->writeStr(4, 0, companyName, companyFormat); 有人可以告诉我发生了什么事吗? 我怎样才能使用这个库显示一个variablesstring? 谢谢你的帮助。