要使用C++實現XLSX文件的數據轉換,你可以使用一些第三方庫,如libxlsxwriter
和xlnt
首先,確保你已經安裝了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()
并對每個工作表重復上述過程。