首页 libxl库读写excel

libxl库读写excel

小白鼠 2019-04-12 12:00:01 0 4346

libxl库读写速度很快,几乎秒读,当然他是收费的,如果你用于商业,请购买正版

本人已录制好视频,为方便大家学习


链接:https://pan.baidu.com/s/1WaKbqd_kRpY2VDEf0fVMSQ 
提取码:1k46 
复制这段内容后打开百度网盘手机App,操作更方便哦


#include "libxl.h"
#include <sstream>
using namespace libxl;
using namespace std;

void CtestExcelDlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码

	CString xlsFile=_T("F:\\excel\\libxl\\testExcel\\test.xls");
	Book* book = xlCreateBook();
	book->setKey(L"用户名",L"注册码");   //注册
	if(book)
	{
		
		Sheet* sheet = book->addSheet(L"Sheet1");
		if(sheet){
			for (int i=0;i<100;i++)
			{
				for (int j=0;j<100;j++)
				{
					sheet->writeStr(i, j, L"www.vmould.cn");
				}
			}
		}
		book->save(xlsFile);
		book->release();
	}
	
}


void CtestExcelDlg::OnBnClickedButton2()
{
	// TODO: 在此添加控件通知处理程序代码
	CString xlsFile=_T("F:\\excel\\libxl\\testExcel\\test.xls");
	Book* book = xlCreateBook();
	book->setKey(L"用户名",L"注册码");   //注册
	if(book)
	{
		int num;
		if(book->load(xlsFile)){
			Sheet* sheet = book->getSheet(0);
			if(sheet)
			{
				size_t maxRows = sheet->lastRow();//得到行
				size_t maxCols = sheet->lastCol();//得到列
				for (size_t i=0;i<maxRows;i++)//行
				{
					for (size_t j=0;j<maxCols;j++)//列
					{
						CString TEMP;
						CellType celltype = sheet->cellType( i, j);  
						char infoout[256];
						if(sheet->isFormula(i, j))
						{
							TEMP=_T("");
						}
						else
						{
							switch( celltype ) 
							{  
							case CELLTYPE_EMPTY:
								TEMP=_T("");
								break;
							case CELLTYPE_STRING: //字符串
								TEMP = sheet->readStr(i, j);
								break;  
							case CELLTYPE_NUMBER: //数字
								{
									double iCellValue = sheet->readNum(i, j);
									std::ostringstream oss;
									oss<<iCellValue;
									TEMP.Format(_T("%s"),oss.str().c_str());
									break; 
								}
							case CELLTYPE_BOOLEAN:
								{
									bool  b = sheet->readBool(i, j);
									if (b)
									{
										TEMP=_T("1");
									} 
									else
									{
										TEMP=_T("0");
									}
									break; 
								}
							case CELLTYPE_BLANK:
								{
									TEMP=_T("");
									break;
								}
							case CELLTYPE_ERROR: 
								{
									TEMP=_T("");
									break;
								}
							default :
								{
									TEMP=_T("");
									break;
								}
							}//switch
							if (j==0)
							{
								num=m_list.InsertItem(i,TEMP);
							}
							else{
								m_list.SetItemText(num,j,TEMP);
							}
						}
					}
				}
			}
		}
		//book->save(xlsFile);
		book->release();
	}
}


excel · libxl ·

发表评论