如何将DataGrid中的数据 导出到 excel? 我用vc6.0做了个学生信息管理系统!里面的数据用Ado连接,用DataGrid控件显示!我该如何将DataGrid中的数据 导出到 excel呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.codechina.net/resource/html/2005-02/28/15582.html之后再查询一下msdn就没有问题了。 void CMainInfDlg::OnMaininfGuide() { // TODO: Add your control notification handler code here CFileDialog dlg(TRUE,"xls",".xls"); int structsize; DWORD dwVersion; dwVersion=GetVersion(); if(dwVersion<0x80000000) structsize=88; else structsize=76; dlg.m_ofn.lStructSize=structsize; CString path; if(dlg.DoModal()==IDOK) path=dlg.GetPathName(); COleVariant VOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR); _Application objApp; Workbooks objbooks; _Workbook objbook; Worksheets objsheets; _Worksheet objsheet; Range objRang; objApp.CreateDispatch("Excel.Application"); objbooks=objApp.GetWorkbooks(); objbook.AttachDispatch(objbooks.Add(_variant_t(path))); objsheets=objbook.GetSheets(); objsheet=objsheets.GetItem((_variant_t)short(1)); objRang.AttachDispatch(objsheet.GetCells(),TRUE); int ss,nn; double dTotal(0); CString cc; nn=m_adodc.GetRecordset().GetRecordCount(); CColumns cls; cls=m_datagrid.GetColumns(); ss=cls.GetCount(); for(int i=0;i<nn;i++) { m_datagrid.SetRow(i); for(int j=0;j<ss;j++) { m_datagrid.SetCol(j); cc=m_datagrid.GetText(); if(j==9) dTotal=dTotal+atoi(cc); objRang.SetItem(_variant_t((long)(i+2)),_variant_t((long)(j+1)),_variant_t(cc)); } } objApp.SetVisible(TRUE); objRang.ReleaseDispatch(); objsheet.ReleaseDispatch(); objsheets.ReleaseDispatch(); objbook.ReleaseDispatch(); objbooks.ReleaseDispatch(); objApp.ReleaseDispatch();} 当然要导入 相关的EXECEL 文件 H CPP的 谢谢楼上的兄弟们当然要导入 相关的EXECEL 文件 H CPP的-----------------------------------------------可以告我吗? -------------------------------------------------------------还有个问题!这个与excel版本有关吗? 如果你安装了office 是可以找到这些类的。具体 在你的工程里单击Add class 按钮,在下拉菜单中选择From a type library 出现对话框 选择你的 OFFICE安装目录 选择execel9.lob 代开confirm class 选择相关类,如_Application Workbooks _workbook worksheets _worksheet Range等 这些类包含在 excel9.h excel9.cpp中 一个有深度的问题 自己总结的OLE操作EXCEL的常数宏 MFC程序发布问题,高人指点 xp下可以实现windows7的透明效果吗? idl编译出错,怎么解决啊? 这段C++Builder的代码该怎么移植到vc下面? 注册表的问题 有谁有关于列表控件(listctrl)自画的代码啊? 我该如何让CCombobox里的内容变成不可编辑的啊,初学VC,各位多帮忙,谢谢 好郁悶啊﹐大家幫幫我﹗ 求word文档转成jpg图片的方法 CLinkCtrl 的使用? 各位大侠又没有例子
之后再查询一下msdn就没有问题了。
{
// TODO: Add your control notification handler code here
CFileDialog dlg(TRUE,"xls",".xls");
int structsize;
DWORD dwVersion;
dwVersion=GetVersion();
if(dwVersion<0x80000000)
structsize=88;
else
structsize=76;
dlg.m_ofn.lStructSize=structsize;
CString path;
if(dlg.DoModal()==IDOK)
path=dlg.GetPathName();
COleVariant VOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);
_Application objApp;
Workbooks objbooks;
_Workbook objbook;
Worksheets objsheets;
_Worksheet objsheet;
Range objRang;
objApp.CreateDispatch("Excel.Application");
objbooks=objApp.GetWorkbooks();
objbook.AttachDispatch(objbooks.Add(_variant_t(path)));
objsheets=objbook.GetSheets();
objsheet=objsheets.GetItem((_variant_t)short(1));
objRang.AttachDispatch(objsheet.GetCells(),TRUE);
int ss,nn;
double dTotal(0);
CString cc;
nn=m_adodc.GetRecordset().GetRecordCount();
CColumns cls;
cls=m_datagrid.GetColumns();
ss=cls.GetCount();
for(int i=0;i<nn;i++)
{
m_datagrid.SetRow(i);
for(int j=0;j<ss;j++)
{
m_datagrid.SetCol(j);
cc=m_datagrid.GetText();
if(j==9)
dTotal=dTotal+atoi(cc);
objRang.SetItem(_variant_t((long)(i+2)),_variant_t((long)(j+1)),_variant_t(cc));
}
}
objApp.SetVisible(TRUE);
objRang.ReleaseDispatch();
objsheet.ReleaseDispatch();
objsheets.ReleaseDispatch();
objbook.ReleaseDispatch();
objbooks.ReleaseDispatch();
objApp.ReleaseDispatch();}
当然要导入 相关的EXECEL 文件 H CPP的
-----------------------------------------------
可以告我吗?
-------------------------------------------------------------还有个问题!这个与excel版本有关吗?