温馨提示×

利用C++实现XLSX文件的数据转换

c++
小樊
97
2024-09-07 06:31:03
栏目: 编程语言

要使用C++实现XLSX文件的数据转换,你可以使用一些第三方库,如libxlsxwriterxlnt

首先,确保你已经安装了xlnt库。在Ubuntu上,你可以使用以下命令安装:

sudo apt-get install libxlnt-dev

接下来,创建一个名为xlsx_to_csv.cpp的C++源文件,并添加以下代码:

#include<iostream>
#include <fstream>
#include <xlnt/xlnt.hpp>

int main(int argc, char *argv[])
{
    if (argc != 3)
    {
        std::cerr << "Usage: xlsx_to_csv<input.xlsx><output.csv>"<< std::endl;
        return 1;
    }

    // Load the XLSX file
    xlnt::workbook wb;
    try
    {
        wb.load(argv[1]);
    }
    catch (const xlnt::exception &e)
    {
        std::cerr << "Error loading XLSX file: " << e.what()<< std::endl;
        return 1;
    }

    // Get the first sheet
    xlnt::worksheet ws = wb.active_sheet();

    // Open the output CSV file
    std::ofstream csv_file(argv[2]);
    if (!csv_file.is_open())
    {
        std::cerr << "Error opening output CSV file"<< std::endl;
        return 1;
    }

    // Iterate through the rows and columns and write to the CSV file
    for (auto row : ws.rows())
    {
        bool first_cell = true;
        for (auto cell : row)
        {
            if (!first_cell)
            {
                csv_file<< ",";
            }
            else
            {
                first_cell = false;
            }

            csv_file<< cell.to_string();
        }
        csv_file<< std::endl;
    }

    csv_file.close();

    std::cout << "XLSX data successfully converted to CSV"<< std::endl;

    return 0;
}

然后,编译并运行程序:

g++ -o xlsx_to_csv xlsx_to_csv.cpp -lxlnt
./xlsx_to_csv input.xlsx output.csv

这将把input.xlsx文件中的数据转换为CSV格式,并将结果保存到output.csv文件中。请注意,这个示例仅处理了第一个工作表,如果你需要处理多个工作表,可以遍历wb.sheets()并对每个工作表重复上述过程。

0