C ++ – 将结果输出到xlsx(电子表格)而不是CSV

我有一个程序,从“in.txt”文件中读取和复制文本,并将结果输出到“out.csv”中。

当我尝试将结果输出到“out.xlsx”时,它会创build文件,但文件不会打开。 这是说电子表格已损坏。 如何编写它,以便在电子表格中输出结果?

我的“in.text”文件只包含一行String,它是一个人的名字,例如Ben。

这是我的程序:

#include "stdafx.h" #include <iostream> #include <fstream> using namespace std; int main(void) { char inputFilename[] = "C:\\ABC\\ZXY\\in.txt"; char outputFilename[] = "out.csv"; //change this to "out.xlsx" ifstream inFile; ofstream outFile; char username; inFile.open(inputFilename, ios::in); if (!inFile) { cerr << "Can't open input file " << inputFilename << endl; exit(1); } outFile.open(outputFilename, ios::out); if (!outFile) { cerr << "Can't open output file " << outputFilename << endl; exit(1); } while (inFile >> username) { outFile << username++ << endl; } inFile.close(); outFile.close(); return 0; } 

一个xlsx文件是一个相当复杂的野兽 – 与CSV文件非常不同。 至less在理论上(至less在理论上)可以根据ECMA标准自行创build一个标准 ,但这是一个非常大的标准 – 仅有第一卷就有超过5000页,而这只是四卷中的第一卷。 更糟糕的是,虽然我没有试图确定它是否适用于现行版本的标准,但有人抱怨说,尽pipe规模很大,标准仍然不完整。

可用的select实际上是:

  1. 创build一个CSV文件,并完成它
  2. 使用一些外部库来创buildxlsx文件
  3. 致力于自己创build一个xlsx文件相当长的一段时间

当我说“相当长一段时间”时,我的意思大概是至less几个星期,假设你想要产生一些基本上与csv文件相同的东西 – 也就是只含有数据的东西 – 并假设你“对于某些零件,仍然会使用外部库。

我应该再添加一点:一个xlsx文件实际上是一个zip文件。 创build简单path的最简单途径可能是将现有的.xlsx文件重命名为.zip,然后查看(并模仿)其内容。

我build议使用现有的库,如SimpleXlsxWriter