描述:
我要在VC中操纵 Excel,在网上看了很多例子,千篇一律.
那些例子都这样:
_Application app;
app.SetVisible(TURE);
为什么我选中Excel模板的Application接口之后,
而在我的VC中,_Application不可识别,改为Application可也, 但在方法SetVisible中报错说不能用TURE代替一个VARIANT对象?
VC版本问题? 谁有这方面的简单例子可供参考?
会的请帮忙,不会的就不要顶了.谢谢.
解决方案1:
// XExcel.h: interface for the CXExcel class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_XEXCEL_H__9E0B4E63_1D2E_4BB9_801A_02A9626F3A86__INCLUDED_)
#define AFX_XEXCEL_H__9E0B4E63_1D2E_4BB9_801A_02A9626F3A86__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "comdef.h"
#include "Excel9.h"
/******************************************
sample::
CXExcel xExcel;
xExcel.InitApp();
xExcel.NewExcel();
xExcel.SetItem(1, 1, "aaa");
xExcel.SetItem(3, 1, "bbb");
xExcel.SetItem(1, 3, 127);
xExcel.SetColumnWidth(1, 100);
xExcel.SetVisible(TRUE);
xExcel.SaveExcel("E:\\test.XLS");
xExcel.ExitApp();
********************************************/
class CXExcel
{
public:
int InitApp();
void SetVisible(BOOL bVisible);
void ExitApp();
int NewExcel();
int SaveExcel(LPCTSTR lpszFileName);
int SetColNumFormat(LONG nCol, LPCTSTR lpszStyle);
int SetRowNumFormat(LONG nRow, LPCTSTR lpszStyle);
int SetNumFormat(LONG nRow, LONG nCol, LPCTSTR lpszStyle);
int SetItem(LONG nRow, LONG nCol, LPCTSTR lpszVal);
int SetItem(LONG nRow, LONG nCol, LONG nVal);
int SetItem(LONG nRow, LONG nCol, double dVal);
int CopyFromRecordset(LPUNKNOWN Data, LONG& nMaxRows, LONG& nMaxColumns);
int SetColumnWidth(LONG nCol, LONG nWidth);
CXExcel();
virtual ~CXExcel();
private:
_Application m_ExcelApp;
_Workbook m_wBook;
_Worksheet m_wSheet;
Workbooks m_wBooks;
Worksheets m_wSheets;
Range m_rgCells;
Range m_rgCols;
};
#endif // !defined(AFX_XEXCEL_H__9E0B4E63_1D2E_4BB9_801A_02A9626F3A86__INCLUDED_)
http://support.microsoft.com/kb/178749/