从excel到cpp项目的输入和输出

时间:2016-02-22 12:24:25

标签: c++ database excel fstream

当你读/写文本文件时,我需要找到一种方法来读取和写入像fstream这样的excel单元格。我尝试使用<fstream>,但它只填充Cell A1,如果我使用endl或\ n,则可能填充A2。我想知道是否有办法访问其他单元格,以便我可以用值填充它们来为项目创建数据库。价值观,名称,电话,价格等

fstream file;
file.open("file.csv", ios::out | ios::app | ios::in);
if(!file.is_open())
{
 cout << "Error!\n";
}
else
{
 file << "Text1\nText2";
}
file.close();

2 个答案:

答案 0 :(得分:0)

读取/写入和格式化excel文件并非易事。您可以尝试使用AKPickerView

<强>替代地
将您的Excel文件保存为.csv,然后对其进行读写。 csvs是逗号分隔文件,其中每列中的数据用逗号分隔,每行用新行分隔。

<强>更新
可以使用任何简单的文本编辑器(如记事本)创建csv文件。只需使用逗号分隔数据

更新2

 file <<"Text1,"<<"Text2,"<<std::endl; //row 1
 file <<"Text3,"<<"Text4,"<<std::endl;  // row 2

更新3

int main()
{
    ofstream out("C:\\inp.csv");

    out << "Text1,Text2" << endl;   
    out << "Text1,Text2" << endl;

    return 0;
}

答案 1 :(得分:0)

您正在使用csv =逗号分隔值。要将值放在不同的列上,请用逗号分隔 - ,

file << "v1" << ',' << "v2";

修改 刚发现this表示默认分隔符为TAB(\t),因此您应该使用:

file << "v1" << '\t' << "v2";

它还有关于如何改变这一点的说明。