在使用網上找到的類讀取時打開Excel檔案時總是報錯
char *file, *getStr,*p;
CEexcelExport m_Excel;
int m_Sheet,len; BOOL isLoad;
m_Excel.InitExcel();
len = WideCharToMultiByte(CP_UTF8, 0, path, path.GetLength(), NULL, 0, NULL, NULL);
p = new char[len + 1];
WideCharToMultiByte(CP_UTF8, 0, path, path.GetLength(), p, len, NULL, NULL);
p[len] = '\0';
m_Excel.OpenExcelFile(p);
最后一句總是報錯函式原型是
BOOL CEexcelExport::OpenExcelFile(const char *file_name)
{
//先關閉
CloseExcelFile();
//利用模板檔案建立新檔案
excel_books_.AttachDispatch(excel_application_.get_Workbooks(), true);
LPDISPATCH lpDis = NULL;
lpDis = excel_books_.Add(COleVariant((LPCTSTR)file_name));
if (lpDis)
{
excel_work_book_.AttachDispatch(lpDis);
//得到Worksheets
excel_sheets_.AttachDispatch(excel_work_book_.get_Worksheets(), true);
//記錄打開的檔案名稱
open_excel_file_ = file_name;
return TRUE;
}
return FALSE;
}
在紅色地方報錯,錯誤的檔案路徑總是C:\User\jason\Document
但是檔案的路徑并不在此,
跪求大神提點一二,謝謝了!
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
斷點file_name的內容值,路徑不對uj5u.com熱心網友回復:
file_name 的值是否正確哪。。。uj5u.com熱心網友回復:
試試簡單點的libxl庫讀取excel吧 http://blog.csdn.net/sunnyloves/article/details/9996669uj5u.com熱心網友回復:
m_Excel ,excel_books,都要確保有效值,才能ADD,不知你的EXCEL是否正常啟動uj5u.com熱心網友回復:
開始的檔案地址是有問題的,后來發現是長指標的問題,轉換以后仍舊為報錯,追蹤了一下,傳進去的是正確的,但是報錯時會添加上C:\Users\Document\寫入路徑,不存在檔案。不知道哪里添加的地址,而且Excel是正常的,可以正常使用,使用的OFFICE 2013uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
求解答
uj5u.com熱心網友回復:
樓主解決了嗎?我也是這個情況!想不出哪里錯了uj5u.com熱心網友回復:
同樣的紅色句子處出錯,無解!uj5u.com熱心網友回復:
應用于 Workbooks 物件的 Add 方法。新建作業簿。新建的作業簿將成為活動作業簿。回傳 Workbook 物件。
expression.Add(Template)
expression 必需。該運算式回傳一個 Workbooks 物件。
Template Variant 型別,可選。確定如何創建作業簿。如果本引數為指定一現有 Microsoft Excel 檔案名的字串,那么創建新作業簿將以該指定的檔案作為模板。如果本引數為常量,新作業簿將包含指定型別的單張作業表。可為以下 XlWBATemplate 常量之一:xlWBATChart、xlWBATExcel4IntlMacroSheet、xlWBATExcel4MacroSheet 或 xlWBATWorksheet。如果省略本引數,Microsoft Excel 將創建包含一定數目的空白作業表的作業簿(該數目由 SheetsInNewWorkbook 屬性設定)。
說明
如果 Template 引數指定的是檔案,則該檔案名可包含路徑。
uj5u.com熱心網友回復:
'本示例打開 Analysis.xls 作業簿:
Workbooks.Open "ANALYSIS.XLS"
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/99771.html
標籤:基礎類
上一篇:足球俱樂部管理系統
