程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C++讀取EXECL表格數據的方法

C++讀取EXECL表格數據的方法

編輯:關於C語言

用C++讀取EXCEL表格內容是一件很麻煩的事,今天看了《把脈VC++》裡面提到了用CStringArray讀取EXCEL表格內容,確實不錯。 主要是先將EXCEL轉存成CSV格式這種格式經常用來作為不同程序之間數據交互的格式)。 然後用C++程序讀取CSV。 主要包括兩個類: class CRow
{
private:
 CStringArray * _row;
public:
 CRow(CStringArray * row);
 int getColumnCount(void);
 CString getColumn(int i);
};
class CSheet
{
private:
 CTypedPtrArray<CPtrArray, CStringArray *> _rows;
public:
 CSheet(void);
 ~CSheet(void);
 int loadFrom(ifstream & in);
 int getRowCount(void);
 CRow getRow(int i);
}; 具體方法參照《把脈VC++》 demo: int main()
{
 CSheet sheet;  //打開csv文件
 ifstream in("test.csv");
 //加載至CSheet
 sheet.loadFrom(in);  //打開轉存到的目標文件txt
 ofstream out("test.txt");  char* sTmp = new char[100];  for(int i = 0; i < sheet.getRowCount(); i++)
 {
  _tprintf(_T("[%02d] "), i);
  //獲取指定行
  CRow row = sheet.getRow(i);
  for(int j = 0; j < row.getColumnCount(); j++)
  {
   //獲取指定列
   CString s = row.getColumn(j);
   _tprintf(_T("%s "), s);      //把CString 類型轉成char*類型
   sprintf(sPane,_T("%s "),s);
   //保存在TXT文件中
   //cout<<"\n"<<sTmp<<endl;
   out<<sPane<<"\t";
  }
  _tprintf(_T("\r\n"), i);
  out<<"\n";
 }
   out.close();
   in.close();
 return 0;
}   附:來自http://www.kaifa6.com/v/MFCShouce/class/CStringArray.htm) CStringArray類成員

構造 CStringArray 構造一個空的CString對象數組
綁定 GetSize 獲取這個數組中的元素數目 SetSize 設置這個數組中包含的元素數目 GetUpperBound 返回最大的有效索引
操作符 FreeExtra 釋放當前數組邊界之外的未使用的所有內存 RemoveAll 從數組中刪除所有元素
元素訪問 GetAt 返回位於給定索引處的值 SetAt 設置給定索引處的元素的值;不得將數組增大 ElementAt 返回對數組中的某一元素指針的臨時引用 GetData 對數組中的元素允許的訪問。可以是NULL
擴大數組 SetAtGrow 設置給定索引處的值,如果必要的話可以增長數組 Add 在數組的末尾添加一個元素;可根據需要增長數組 Append 向數組中添加另一個數組;如果必要的話可增長數組 Copy 將另一個數組拷貝到此數組中;如果必要的話可增長數組
插入/刪除 InsertAt 在指定索引處插入一個元素或者是另一個數組中的所有元素) RemoveAt 刪除指定索引處的一個元素
操作符 operator [] 設置或獲取在指定索引處的元素 站長統計

本文出自 “ClickFuture” 博客,請務必保留此出處http://pingpeace.blog.51cto.com/304509/227743

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved