由于工作需要,要實現對Excel的讀寫功能,在網上找到了CSPReadSheet類來操作excel,關于CSpreadSheet的相關介紹可以參考:
英文:http://www.codeguru.com/cpp/data/mfc_database/microsoftexcel/article.php/c4307/CSpreadSheet.htm
中文:http://www.oschina.net/question/76782_12420
開始之前,需要先下載CSpreadSheet類文件。
鏈接:http://download.csdn.net/download/hao2001/3036187
2.編譯成動態庫(VS2005)
1).新建項目
選擇MFC DLL,名稱自定,點擊確定。
點擊下一步
使用默認,點擊完成
創建成功
2).編輯項目
a.修改OperateExcel.h
打開CSpreadSheet.h文件,把需要的內容復制,修改為:
上圖圈住的地方就是要修改的地方。
b.修改OperateExcel.cpp
把COperateExcelApp改為CSpreadSheet,如下圖:
由于,CSpreadSheet不需要默認構造函數,所以中間那段都注釋掉。
然后打開CSpreadSheet.cpp,除了頭文件把所有內容都復制過來:
OK。
c.修改配置
到此為止,接下來該編譯了,編譯完成后,會生成.lib和.dll文件:
3).讀寫EXCEL
a.先創建一個win32控制臺程序
b.將文件OperateExcel.h,Resource.h,stdafx.h,stdafx.cpp,OperateExcel.dll,OperateExcel.lib拷貝到新建項目的程序所在目錄下
c.把OperateExcel.h,Resource.h,stdafx.h,stdafx.cpp手動添加到項目中
d.在新建項目的cpp文件中加入OperateExcel.h,stdafx.h頭文件
e.在main函數中寫入測試代碼:
[cpp] view plain copy print?int main() { CSpreadSheet SS("Test.xls", "TestSheet"); CStringArray Rows; CStringArray sampleArray, testRow, Column; CString tempString; char alphabet = 'A'; SS.BeginTransaction(); for (int i = 1; i <= 5; i++) { sampleArray.RemoveAll(); for (int j = 1; j <= 5; j++) { tempString.Format("%c%d", alphabet++, i); sampleArray.Add(tempString); } alphabet = 'A'; if (i == 1) // Add header rows { SS.AddHeaders(sampleArray); } else // Add data rows { SS.AddRow(sampleArray); } } // Set up test row for appending, inserting and replacing for (int k = 1; k <= 5; k++) { testRow.Add("Test"); } SS.AddRow(testRow); // append test row to spreadsheet SS.AddRow(testRow, 2); // insert test row into second row of spreadsheet SS.AddRow(testRow, 4, true); // replace fourth row of spreadsheet with test row SS.Commit(); printf("Total number of rows = %d/n/n", SS.GetTotalRows()); return 0; } f.配置項目
注意:除了按照上面動態庫的配置以外,新項目的輸入項加入accessExcel.lib(當前目錄)
編譯成功后,運行會在項目的當前目錄中生成一個Test.xls文件,并且有內容。
新聞熱點
疑難解答