我正在編寫一個程序來讀取使用C++的excel文件。我只需要文件的兩列和Excel文件不包含字段...它也包含圖形。有10列,我需要的兩列是第一和第七。轉換成CSV沒有工作。任何建議plz。C++讀取包含數據和圖形的excel文件
謝謝。
我正在編寫一個程序來讀取使用C++的excel文件。我只需要文件的兩列和Excel文件不包含字段...它也包含圖形。有10列,我需要的兩列是第一和第七。轉換成CSV沒有工作。任何建議plz。C++讀取包含數據和圖形的excel文件
謝謝。
您需要將文件另存爲CSV,然後使用fopen讀取CSV文件。你還需要自己開始做作業,而不是要求互聯網上的人尋求幫助。
看起來他已經嘗試將其保存爲/轉換爲CSV,儘管他沒有說明爲什麼這不起作用。 – 2011-03-29 06:30:32
Excel可以通過其COM接口以編程方式驅動。以下是一些代碼:
#include <windows.h>
#include <iostream>
#import "C:\Program Files\Common Files\Microsoft Shared\OFFICE11\MSO.DLL" rename("RGB", "MSORGB"), rename("DocumentProperties", "MSODocProps")
#import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB" rename ("Application", "VBApplication")
namespace Excel
{
using namespace Office;
using namespace VBIDE;
}
#import "C:\Program Files\Microsoft Office\OFFICE11\Excel.EXE" \
rename("RGB", "RGB_"), \
rename("CopyFile", "CopyFile_"), \
rename("DialogBox", "DialogBox_"), \
rename("ReplaceText", "ReplaceText_")
int main(int argc, char* argv[])
{
::CoInitialize(NULL);
try
{
Excel::_ApplicationPtr excel("Excel.Application");
Excel::WorkbooksPtr wbs = excel->Workbooks;
Excel::_WorkbookPtr wb = wbs->Open(_bstr_t("c:\\temp\\test.xls"));
Excel::_WorksheetPtr sheet = wb->Sheets->GetItem(1); // First sheet
Excel::RangePtr range = sheet->Cells->GetItem(1, 1); // Row, column
_variant_t value = range->Value;
}
catch(_com_error& e)
{
std::cerr << "0x" << std::hex << e.Error() << std::endl;
}
catch(...)
{
std::cerr << "Unexpected error" << std::endl;
}
::CoUninitialize();
return 0;
}
此代碼獲取從光盤加載的電子表格中的單元格A1中的值。你應該能夠從這裏讀到你的兩列數據。
您是否在Windows平臺上運行? – 2011-03-29 05:53:15