2013-05-08 228 views
2

我有一個輸入文件「inputfile.txt」,從我讀取輸入的位置。打開不同的Excel工作表,並使用C++寫入它

inputfile.txt是: -

|I|line|number|1 

|P|line|number|2 

|I|line|number|3 

|P|line|number|4 

|I|line|number|5 

|P|line|number|6 

現在我根據,如果第二個字符是我那麼它將寫入「Iout.xls」,如果它是「P」的條件處理此文件然後寫 「Pout.xls」

Iout.xls: -

|I|line|number|1 

|I|line|number|3 

|I|line|number|5 

Pout.xls: -

|P|line|number|2 

|P|line|number|4 

|P|line|number|6 

這兩個文件都是用管道分隔的excel文件。

這裏是我的代碼,我在做什麼: -

#include<iostream> 
#include<fstream> 
#include<string> 
#include<vector> 
using namespace std; 
int main() { 
ifstream in; 
ofstream Iout,Pout; 
string str; 
string::iterator it; 
in.open("inputfile.txt"); 
Iout.open("Iout.xls",fstream::app); 
Pout.open("Pout.xls",fstream::app); 
if(in.is_open()){ 
    while(in.good()) { 
    getline(in,str); 
    it=str.begin()+1; 
    if(*(it)=='I') 
    Iout<<str<<endl; 
    if(*(it)=='P') 
    Pout<<str<<endl; 
    } 
} 
else cout<<"can't open file"; 
Iout.close(); 
Pout.close(); 
in.close(); 
return 0; 
} 

我有兩個疑問: -

1.I我插入值作爲文本到Excel(用於例如,「| P |行|數| 2「作爲文本插入到Pout.xls),在那裏我正在向列手動執行文本,是否有任何方法使用C++自動執行此操作。

即,| P |行|數| 2將插入爲: - 第一列中的空格,第二列中的P,第三列中的行,第四列中的數字和第五列中的2。

我的第二個查詢: - 我正在寫兩個不同的文件Iout.xls和Pout.xls,然後在兩個文件中將文本轉換爲列後,我將兩個文件複製到一個文件FinalOut.xls中,包含Iout.xls和Pout.xls數據的工作表Iout和Pout。 如何用C++打開excel文件的不同頁面,並直接將相應的數據寫入表單。

即,工作表Sheet將IOUT 和sheet2將bePout。

我對我的代碼使用devC++。

謝謝

+1

你需要在C++中做到這一點?有一些命令行工具可以在單線程中執行此操作。 – 2013-05-08 07:22:37

+0

@PeterWood是的,我需要在C++中這樣做,如果這可以通過命令完成,那麼也許我可以使用C++的system()函數執行命令行命令。 – avinashse 2013-05-08 07:31:03

+0

@PeterWood現在沒有必要這樣做在C++中,如果這可以使用批處理文件,那麼它也很好。你能指導我朝這個方向走嗎? – avinashse 2013-05-09 05:34:03

回答

1

Excel是能夠導入基於HTML的文件 - 在http://msdn.microsoft.com/en-us/library/Aa155477%28office.10%29.aspx

籤的官方文檔由於HTML是「基於文本」,你應該能夠編寫是相當容易...

另一種選擇是使用Excel可以理解的CSV(也是基於文本的),但CSV不支持不同的工作表。

XLS是微軟定義的一種二進制文件格式,它相當複雜......一種選擇是像LibXL這樣的商業庫 - 它可以讀寫「真正的Excel格式(XLS等)」,包括支持不同的工作表等等。

相關問題