2012-05-18 150 views
0

我正在尝试创建一个参考程序,我认为它将使用Excel电子表格来保存只读信息。我希望用户能够从选项列表中选择一个主题,并将相应单元格中的信息反馈给他们。该程序正在用C++编写。我的问题是,如何从我的程序访问电子表格中的特定单元格?我已经研究了一下,我已经看到我想将我的文件保存为csv并使用fscanf来读取内容,但是我对如何执行此部分感到不知所措。我用Google搜索了一下,发现这个线程:从C++的CSV文件中读取特定元素

http://www.daniweb.com/software-development/cpp/threads/204808/parsing-a-csv-file-separated-by-semicolons

但我认为它在一切从CSV数据的读取?反正我可以告诉。而我只想拉特定的元素。那可能吗?

+0

您将不得不阅读整个文件才能访问所需的元素(并忽略其余部分) – Attila

回答

1

如果你只想要特定的元素,你仍然必须解析文件的所有内容,直到你到达这些元素。您不必存储您不需要的值,但您需要解析它们以便在文件中前进。

+0

因此,创建一个数组并将文件的元素馈送到数组中以进行搜索? – Monique

0

您是否从Excel调用该程序?如果你是这样,一个小小的VBA会有很长的路要走。您可以随时导出感兴趣的单元格,以便您的C++程序读入。

否则,其他答案是正确的。但是,您不需要一次将整个文件加载到内存中。您可以使用std :: fstream打开文件并读取文件的每一行,解析每行所需的信息。

+0

不,程序应该向用户请求一个主题,然后访问excel程序,这个参考数据库的想法是针对我可能在C++类中做的最终程序的一个可能的主题,所以我必须写该程序完全使用C++。 你说的第二部分看起来像我最好的选择,我会研究。感谢您的建议:) – Monique

+0

@Monique没有问题。作为提醒,请尝试Boost Tokenizer将字符串拆分为由逗号分隔的字符串集合; [Boost Tokenizer](http://tinyurl.com/ct3dmy6) – Steztric