BasicExcel开源库地址:
原文有相应的接口说明和样例程序,容易上手
从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文件袋额损坏!!!
如果不需要写入字符串,那么这个库还是比较好用的