谁会用代码生成一个Excel文件? 使得该文件与右键-->新建-->Excel工作表 生成的文件一样?CFile execfile;
execfile.Open(path,CFile::modeCreate);这种方法是不行的,它生成的大小为0,右键...生成的有十几K大小.OLE生成方式:先生成几个CFile型的.xls文件,再用Workbooks的Add方法添加到Excel 框架中去,效果也很差.请比较有经验的人指教一下,不然该帖又要无果而终了.
execfile.Open(path,CFile::modeCreate);这种方法是不行的,它生成的大小为0,右键...生成的有十几K大小.OLE生成方式:先生成几个CFile型的.xls文件,再用Workbooks的Add方法添加到Excel 框架中去,效果也很差.请比较有经验的人指教一下,不然该帖又要无果而终了.
解决方案 »
- 如何显示CFile中的图片
- VC2005如何调用一个 c 语言编写的 dll (Labwindows/CVI)
- 谁有 c++ 2005入门经典 中文版 的啊
- 解决了一个bug,散分庆祝,前10名,每人10分,不得重复
- 散分求助:我做好了几个支持mfc的控制台类,怎么将他们合在一块
- 请问哪位有关于DIRECTSHOW编程的电子资料,急!
- 一个关于api文件拷贝的问题?
- 请问:在哪可以找到编译器或解释器的开发资料、或源码?
- 请问谁有visual c++6。0技术内幕(第五版)的源代码下载
- 在ASP里用的COM组件封装了ADO,CoInitializeEx时该声明成哪种线程模型?
- 用XML+JavaScript来定制UI,软件的扩展性和可定制性空前增强...
- 怎么更改程序图标?
但是有内存泄露问题
Microsoft Office Excel 2003 中的 Workbooks 集合使您可以使用所有打开的工作簿、创建新的工作簿以及向新的工作簿中导入数据。创建新工作簿 使用 Workbooks 集合的 Add 方法:
' Visual Basic
Dim wb As Excel.Workbook = ThisApplication.Workbooks.Add()// C#
Excel.Workbook workbook = ThisApplication.Workbooks.Add(Type.Missing);
也可以将工作簿模板的名称指定为 Add 方法的参数。
可以向 Microsoft Office Excel 2003 工作簿中添加新工作表,或创建现有工作表的副本。Add 方法允许您向工作簿中的工作表集合中添加新工作表。向工作簿中添加新工作表 使用 Sheets 集合的 Add 方法:
' Visual Basic
Dim sh As Excel.Worksheet
sh = ThisWorkbook.Worksheets.Add()// C#
Excel.Worksheet newWorkSheet;
newWorkSheet =
(Excel.Worksheet)ThisWorkbook.Worksheets.Add(
Type.Missing, Type.Missing, Type.Missing, Type.Missing);
Copy 方法创建工作表的副本,并将该工作表插入到您指定的位置。如果愿意,您可以指定将新工作表插到现有工作表的前面或后面。如果不指定,Excel 将创建一个新工作簿来容纳该新的工作表。 向工作簿中添加复制的工作表 以下代码复制当前工作簿中的第一个工作表,并将副本置于第三个工作表后面。
' Visual Basic
ThisApplication.ActiveWorkbook.Sheets(1).Copy( _
After:=ThisApplication.ActiveWorkbook.Sheets(3))// C#
ThisApplication.ActiveWorkbook.Sheets[1].Copy(Type.Missing,
ThisApplication.ActiveWorkbook.Sheets[3]);
在宏里面操作你需要的过程,
然后查看宏内容得到你需要的方法 ....
效果差是什么意思
我的MSDN2001可是很多东西都没有.
---------------------------------------------------------------------------------------
HGLOBAL hGlobal = NULL;
HRSRC hSource = NULL;
LPVOID lpVoid = NULL;
int nSize = 0; // 1. 从资源中读取资源文件数据
hSource = FindResource(AfxGetResourceHandle(), MAKEINTRESOURCE(IDC_NewExcelFile), _T("BlankExcelFile"));
if(hSource == NULL)
{
AfxMessageBox("找不到资源");
return;
}
hGlobal = LoadResource(AfxGetResourceHandle(), hSource);
if(hGlobal == NULL)
{
AfxMessageBox("无法装载资源");
return;
}
lpVoid = LockResource(hGlobal);
if(lpVoid == NULL)
{
AfxMessageBox("试图获得资源指针时失败");
return;
} //获取资源的大小,以便后面分配相应大小内存并写入文件
nSize = (UINT)SizeofResource(AfxGetResourceHandle(), hSource); // 2. 分配内存并拷贝数据
HGLOBAL hGlobalMem = GlobalAlloc(GMEM_MOVEABLE, nSize);
if(hGlobalMem == NULL)
{
AfxMessageBox("内存分配失败");
return;
}
void* pData = GlobalLock(hGlobalMem);
memcpy(pData, (BYTE*)hGlobal, nSize);
GlobalUnlock(hGlobalMem); //把资源内容写入指定文件f:\newfile
CFile file("f:\\newfile.xls",CFile::modeCreate|CFile::modeWrite);
file.Write(pData,nSize);
file.Close(); //释放资源
UnlockResource(hGlobal);
FreeResource(hGlobal);
FreeResource(hGlobalMem);
---------------------------------------------------------------------------------------
我当时使用OLE,调用EXCEL的,很慢.
不知有没有*.xls文件格式供大家参考?
_Application ExcelApp; // 定义Excel应用程序
Workbooks wbsBooks;
_Workbook wbBook;
Worksheets wssSheets;
_Worksheet wsSheet;
Range rngXls;
Range rngEnter;
c_Font font; // 字体
Borders border; // 边框 if (::CoInitialize( NULL ) == E_INVALIDARG)
{
AfxMessageBox(_T("初始化Com失败!"));
return;
} // 创建Excel2000服务器(启动Excel)
if ( !ExcelApp.CreateDispatch(_T("Excel.Application"), NULL))
{
AfxMessageBox(_T("创建Excel2000服务失败!"));
::CoUninitialize();
return;
}
有这些类后,就可以使用ADD方法添加表格了,前面需要加入OFFICE自动化
CFile::modeCreate | CFile::modeWrite | CFile::typeText );
lpszFileName="yourexcel.xls"2.用OLE Automation _Application ExcelApp;
Workbooks wbsMyBooks;
_Workbook wbMyBook;
Worksheets wssMysheets;
_Worksheet wsMysheet;
Range rgMyRge,range;
CString strDatLineText;
COleVariant
covTrue((short)TRUE),
covFalse((short)FALSE),
covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
if (!ExcelApp.CreateDispatch("Excel.Application",NULL))
{
AfxMessageBox("创建Excel服务失败!");
exit(1);
}