好吧,我很久没有编程过任何有用的东西了——我上次编程是在一年前,你可以想象,我的编程知识已经严重生疏了。(我"编程"的最后一件事是周末的一个ren'py游戏。可以想象它的有限用途。我写的最高级的C程序是一年前的一个井字游戏。所以是的。)
无论如何,我得到了一份工作,要写一个程序,它包含两个Excel文件,这两个文件都有一个项目列表,每个项目都与一个ID相关联。我需要编写一个程序来搜索两个文件中的ID,如果ID匹配,程序将需要创建一个具有匹配ID和项目的新文件。这超出了我有限的C语言能力。
如果有人能帮忙,我会非常感谢。
(此外,如果C无法做到这一点,我将尽我所能使用任何其他语言)
将两个文件导出为.csv格式,并编写一个脚本来处理这两个文件。例如,在PHP中,您已经内置了csv读/写功能。
您可以使用VBA执行此操作,并在其中一个文件中创建一个宏,该宏在文件1中列中的单元格上迭代,并将它们与文件2中的单元格进行比较,如果匹配,则将它们写入新的.xls文件。
Dana指出,VLOOKUP功能将很容易做到这一点。
- 安装GnuWin32
- 将excel文件输出为文本(例如csv)
-
sort
每个文件带有-u
选项,以便在需要时删除重复项 - 混合并
sort
这两个文件 - 使用
uniq -c
计数唯一ID - 用
grep
过滤出计数值为1的行 - 删除留下ID的计数以及
cut
所需的其他内容
如果您了解Java,那么您可以在项目中使用Apache POI。您可以使用Apache POI网站上给出的示例来完成您的任务。
Apache POI Excel文档:http://poi.apache.org/spreadsheet/quick-guide.html
如果您必须从流程中对xls/xlsx文件执行此操作,您可能需要一份由COM自动化控制的Excel副本。你可以在BV/VBA/C#/C++中做这件事,有些比其他更容易。谷歌搜索"Excel自动化"。
Rgds,Martin
不是C,但您可以使用xlspell非常快速地拼凑一些东西。
它过去对我很有用。