vs2019 vector读入libxl库的excel
时间: 2023-08-17 11:03:58 浏览: 125
假设你已经正确安装了 `libxl` 库,并且已经将其添加到你的项目中,那么你可以按照以下步骤读取 `Excel` 文件中的数据:
1. 引入 `libxl` 库头文件:
```c++
#include "libxl.h"
using namespace libxl;
```
2. 创建一个 `Book` 对象并打开 `Excel` 文件:
```c++
Book* book = xlCreateBook();
if (book->load("example.xlsx")) {
// 文件成功打开
} else {
// 文件打开失败
}
```
3. 获取 `Sheet` 对象并读取数据:
```c++
Sheet* sheet = book->getSheet(0); // 获取第一个工作表
const int numRows = sheet->lastRow();
const int numCols = sheet->lastCol();
std::vector<std::vector<std::string>> data(numRows, std::vector<std::string>(numCols));
for (int row = 0; row < numRows; ++row) {
for (int col = 0; col < numCols; ++col) {
data[row][col] = sheet->readStr(row+1, col+1);
}
}
```
这里我们使用了一个二维 `vector` 存储读取到的数据。你也可以根据需要使用其他数据结构。
4. 关闭 `Book` 对象并释放内存:
```c++
book->release();
```
完整的代码示例:
```c++
#include "libxl.h"
#include <vector>
using namespace libxl;
int main() {
Book* book = xlCreateBook();
if (book->load("example.xlsx")) {
Sheet* sheet = book->getSheet(0);
const int numRows = sheet->lastRow();
const int numCols = sheet->lastCol();
std::vector<std::vector<std::string>> data(numRows, std::vector<std::string>(numCols));
for (int row = 0; row < numRows; ++row) {
for (int col = 0; col < numCols; ++col) {
data[row][col] = sheet->readStr(row+1, col+1);
}
}
// 打印读取到的数据
for (const auto& row : data) {
for (const auto& cell : row) {
std::cout << cell << "\t";
}
std::cout << std::endl;
}
} else {
std::cerr << "Failed to open file" << std::endl;
}
book->release();
return 0;
}
```
阅读全文