BasicExcel开源库地址: https://www.codeproject.com/Articles/13852/BasicExcel-A-Class-to-Read-and-Write-to-Microsoft
原文有相应的接口说明和样例程序,容易上手
从Excel文件读取数据:
BasicExcel excel;
excel.Load("data.xls"); //必须是 xls 类型的Excel文件,不能读取 xlsx 文件
BasicExcelWorksheet *sheet = excel.GetWorksheet("Sheet1"); //获取当前文件的指定名字的工作簿
if (sheet)
{
size_t maxRows = sheet->GetTotalRows(); //获取行数
size_t maxCols = sheet->GetTotalCols(); //获取列数
int intVal = sheet->Cell(x,y)->GetInteger(); //获取当前工作簿的 x 行 y 列的 int 值
string strVal = sheet->Cell(x,y)->GetString(); //获取当前工作簿的 x 行 y 列的 string 值
sheet->Cell(x,y)->Get(...); //获取某种类型的值,根据输入参数类型决定
}
写入数据到Excel文件:
BasicExcel excel;
excel.Load(fileName);
BasicExcelWorksheet *sheet = excel.GetWorksheet("Users");
/* Write to file */
if ( sheet )
{
size_t idx = sheet->GetTotalRows(); //获取行数
sheet->Cell(idx, 0)->SetString(usr.Id); //写入数据到指定单元格
sheet->Cell(idx, 1)->SetString(usr.NickName); // SetString(), SetDouble() ...
sheet->Cell(idx, 2)->SetString(usr.Pwd);
}
/* save data */
excel.Save(); //一定要记得保存,不然以上操作无效!!!
如果只是写入一条数据,那么上面的代码没问题,但如果用这段代码连续写入,就会出错!!!
错误所在: 用 SetString() 这个函数写入字符串,会破坏原有数据导致整个Excel文件袋额损坏!!!
如果不需要写入字符串,那么这个库还是比较好用的