vc6.0生成excel
来源:互联网 发布:重力约束核聚变吗 知乎 编辑:程序博客网 时间:2024/06/07 21:27
上文介绍了读取Excel文件中数据的方法,这回说明生成一个Excel文件的方法。
初始化Com库和使用的对象都和上文一样,下面这段代码的逻辑是:
1. 先打开一个Excel文件,
2. 在激活的Sheet的下一个sheet中写入数据
3. 保存成另外一个文件
if (!m_oExcelApp.CreateDispatch( _T( "Excel.Application" ), NULL ) )
{
::MessageBox( NULL, _T( "创建Excel服务失败!" ), _T( "错误提示!" ), MB_OK | MB_ICONERROR);
exit(1);
}
//设置为显示
m_oExcelApp.SetVisible(FALSE);
m_oWorkBooks.AttachDispatch( m_oExcelApp.GetWorkbooks(), TRUE );
LPDISPATCH lpDisp = NULL;
COleVariant covTrue((short)TRUE);
COleVariant covFalse((short)FALSE);
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
Range oCurCell;
// 打开文件
lpDisp = m_oWorkBooks.Open( _T( "K://VoiceS_Excel//09_Backup//02_Test//SourceFile.xls" ),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing) );
// 获得活动的WorkBook( 工作簿 )
m_oWorkBook.AttachDispatch( lpDisp, TRUE );
// 获得活动的WorkSheet( 工作表 )
m_oWorkSheet.AttachDispatch( m_oWorkBook.GetActiveSheet(), TRUE );
m_oWorkSheet.AttachDispatch( m_oWorkSheet.GetNext() );
m_oWorkSheet.Activate();
// 获得使用的区域Range( 区域 )
m_oCurrRange.AttachDispatch( m_oWorkSheet.GetCells(), TRUE );
// 写入数据
int nRowNum = 0;
m_pExcelOperDlg->getRowNumInListCtrl( nRowNum );
CStringArray* arrayStr;
arrayStr = new CStringArray[nRowNum];
m_pExcelOperDlg->getAllDataInListCtrl( arrayStr ); // 获得ListCtrl中的所有数据,保存到二维数组中
for ( int i = 0; i < nRowNum; i++ ) // 向Excel中写数据
{
for ( int j = 0; j < arrayStr[i].GetSize(); j++ )
{
m_oCurrRange.SetItem( _variant_t( (long)(i+1) ),
_variant_t( (long)(j+1) ),
COleVariant( arrayStr[i].GetAt( j ) ) );
}
}
m_oWorkBook.SaveAs( COleVariant( strFilePath ),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
0,
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing) );
// 释放二维数组
delete[] arrayStr;
// 关闭
m_oWorkBook.Close( covOptional, COleVariant( strFilePath ), covOptional );
m_oWorkBooks.Close();
// 释放
m_oCurrRange.ReleaseDispatch();
m_oWorkSheet.ReleaseDispatch();
m_oWorkSheets.ReleaseDispatch();
m_oWorkBook.ReleaseDispatch();
m_oWorkBooks.ReleaseDispatch();
m_oExcelApp.ReleaseDispatch();
m_oExcelApp.Quit();
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/primer_programer/archive/2008/05/09/2422362.aspx
- vc6.0生成excel
- VC6.0生成Excel文件
- VC6.0生成Excel文件
- VC6.0读取Excel数据
- Excel 编程 VC6.0【一】
- Excel 编程 VC6.0【二】
- VC6.0读取Excel数据
- VC6.0读取Excel数据
- VC6.0读取Excel数据
- VC6.0 操作Excel表格
- vc6.0对Excel的操作
- vc6.0,vs2005下插入excel表格
- VC6.0和VS2010获取Excel驱动
- VC6.0 生成mfc dll 无法加载
- VC6.0 编译Json生成lib文件
- vc6.0调用excel xp,word 2k
- vc6.0将数据写入EXCEL表代码
- VC6.0调用excel xp,word 2k
- asp.net web.config当中的配置标记写法
- 编码格式要统一,Asp.net把UTF-8编码转换为GB2312编码
- System.Transactions 事务处理
- 试图扩大物理文件时,MODIFY FILE遇到操作系统错误112
- asp.net 关于您请求的报表需要更多信息的问题
- vc6.0生成excel
- asp.net 动态控件创建
- canvas 拖动效果
- 备份还原数据库
- Oracle 开发常见问题
- 横排Li的自适应宽度
- asp.net 动态树菜单
- WML页面跳转
- 奶牛梦工场:我们为你的健康负责