• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > vc中如何不用模板创建一个新的excel文件?

vc中如何不用模板创建一个新的excel文件?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了vc模板,vc创建excel,excel如何创建模板,excel创建模板,excel怎么创建模板等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: vc 中 如何不用模板创建一个新的excel文件?
描述:


找了一些用com 操作 excel 的资料,
都是用模板才能产生新的 .xls文件,
谁能给一个不用模板的例子, 给出关键的代码片断就行,
比如
//////////////////////
_Application app;
app.CreateDispatch("Excel.Application",NULL); 
 
Workbooks workbooks =app.GetWorkbooks();
_Workbook workbook = workbooks.Add(_variant_t("d:\\a\\Book1.xls")); 
/////////////////////////
add 是 打开已经存在的 文件, 如何 不用模板 创建新的文件呢? 
谢谢


解决方案1:

DWORD WINAPI CExportXLSDlg::_ExportThread(LPVOID pParameter)
{
CExportXLSDlg *pDlg = (CExportXLSDlg*)pParameter;
_Application *pExcelApp;
Workbooks objExcelBooks;
Sheets objExcelSheets;
_Workbook objWorkBook;
_Worksheet objWorkSheet;
Range objRange;
COleVariant varOptional(DISP_E_PARAMNOTFOUND, VT_ERROR);
COleVariant varTrue((short)TRUE);
COleVariant varFalse((short)FALSE);
MSG msg;
CString strText;
int nMilliTime = 0;
int nSequence = 0, nLastSequence = -1;
int nRow = 1;
int i;
double dblValue[TOTAL_CHANNEL_NUM];
CoInitialize(NULL); // ÒòΪ¶ÔÓÚCOM²Ù×÷±ØÐë¶Ôÿ¸öÏß³ÌÒýÓàCOM ¿â
pDlg->m_staticProgress.SetWindowText(_T("ÕýÔÚ´´½¨ExcelʵÀý..."));
pExcelApp = new _Application;
pExcelApp->CreateDispatch(_T("Excel.Application")); // ´´½¨ Excel Ó¦ÓóÌÐò
objExcelBooks = pExcelApp->GetWorkbooks();
objExcelSheets = objExcelBooks.Add(varOptional);
objWorkBook.AttachDispatch(pExcelApp->GetApplication());
objExcelSheets = objWorkBook.GetSheets();
// Ïȵ¼³öÀúÊ·Êý¾ÝÏà¹ØÐÅÏ¢
pDlg->m_staticProgress.SetWindowText(_T("ÕýÔÚµ¼³öÀúÊ·Êý¾ÝÐÅÏ¢..."));
objWorkSheet = objExcelSheets.GetItem(COleVariant((short)1));
objWorkSheet.SetName(_T("ÀúÊ·Êý¾ÝÐÅÏ¢"));
objWorkSheet.Activate();
__ExportInfomation(objWorkSheet);
// µ¼³öÀúÊ·ÊÔÑéÊý¾Ý
pDlg->m_staticProgress.SetWindowText(_T("ÕýÔÚµ¼³öÀúÊ·ÊÔÑéÊý¾Ý..."));
objWorkSheet = objExcelSheets.GetItem(COleVariant((short)2));
objWorkSheet.SetName(_T("ÊÔÑéÊý¾Ý"));
objWorkSheet.Activate();
__ExportDataHead(objWorkSheet);
nSequence = 0;
while (nSequence < g_nHistoryCount)
{
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
if (msg.message == WM_QUIT)
break;
}
if (nSequence > nLastSequence)
{
nRow ++;
__GetTimeString(nSequence, strText);
__SetExcelCellText(objWorkSheet, nRow, 1, strText, 1, 2);
__GetHistoryRecord(nSequence, dblValue);
strText.Format(_T("%.3f"), dblValue[BASEID_COOL]);
__SetExcelCellText(objWorkSheet, nRow, 3, strText);
for (i=0; i<T_CHANNEL_NUM; i++)
{
strText.Format(_T("%.3f"), dblValue[BASEID_T + i]);
__SetExcelCellText(objWorkSheet, nRow, 4+i, strText);
}
for (i=0; i<K_CHANNEL_NUM; i++)
{
strText.Format(_T("%.3f"), dblValue[BASEID_K + i]);
__SetExcelCellText(objWorkSheet, nRow, 50+i, strText);
}
for (i=0; i<A_CHANNEL_NUM; i++)
{
strText.Format(_T("%.3f"), dblValue[BASEID_A + i]);
__SetExcelCellText(objWorkSheet, nRow, 58+i, strText);
}
strText.Format(_T("%d / %d"), nSequence, g_nHistoryCount);
pDlg->m_staticProgress.SetWindowText(strText);
pDlg->m_slidProgress.Value = nSequence * 100.0 / g_nHistoryCount;
nLastSequence = nSequence;
}
nMilliTime += pDlg->m_nMilliSecond;
nSequence = nMilliTime * (g_sHistoryConfig.dblHighSampleRate / PCI9114_CHANNELS / 1000.0);
}
// &Ccedil;&ETH;&raquo;&raquo;&raquo;&Oslash;&micro;&frac12;&Agrave;ú&Ecirc;·&ETH;&Aring;&Iuml;&cent;&Ograve;&sup3;
objWorkSheet = objExcelSheets.GetItem(COleVariant((short)1));
objWorkSheet.Activate();
pExcelApp->SetVisible(TRUE); // &Iuml;&Ocirc;&Ecirc;&frac34; Excel &Oacute;&brvbar;&Oacute;&Atilde;&sup3;&Igrave;&ETH;ò
delete pExcelApp;
CoUninitialize(); // &Ograve;ò&Icirc;&ordf;&para;&Ocirc;&Oacute;&Uacute;COM&sup2;&Ugrave;×÷±&Oslash;&ETH;&euml;&para;&Ocirc;&Atilde;&iquest;&cedil;&ouml;&Iuml;&szlig;&sup3;&Igrave;&Ograve;&yacute;&Oacute;&Atilde; COM &iquest;&acirc;
pDlg->m_hThread = NULL;
::PostMessage(pDlg->m_hWnd, WM_CLOSE, 0, 0);
return 0;
}


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • vc中如何不用模板创建一个新的excel文件?

相关文章

  • 2017-06-05 [求教]如何使应用程序在同一时刻只有一个实例在运行?
  • 2017-06-05 VisualC++2003工程中的def文件没有效果是什么原因?
  • 2017-06-05 ATL编程中,怎样在一个类中使用自己创建的另一个类作为参数类型
  • 2017-06-04 如何一起使用MicrosoftToolBarControl和MicrosoftImageListControl?
  • 2017-06-04 求一个com+的最简单例子
  • 2017-06-05 Dll导出静态成员问题?
  • 2017-06-04 基于dvdnavigator的dshow图表,如何获取DVD所有视频流的总长度?
  • 2017-06-04 关于VCMFCActiveX工程的问题
  • 2017-06-05 如何在TerminateThread后,释放g_hMutex??
  • 2017-06-05 CCriticalSection::lock和CCriticalSection::unlock返回值的意义

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • atl无窗口exe类型的Com。动态加载第三方的Activex控件后,怎么响应第三方控件己有的事件?
    • 通过双击文件,怎样使windows调用我自己编的程序打开这个文件?
    • ACTIVEX如何激活树控件的事件?
    • 请问如何调用COMDLL的标准接口函数“DllRegisterServer”?
    • 如何根据IOleObject得到LPDATAOBJECT的数据
    • 一个已经创建了实例得远程DCOM对象,为何在访问它得方法得时候,得到结果拒绝访问?附源代码
    • 郁闷,在ATL中用CString::Find怎么老是错误,帮忙解决下
    • NTService的问题:为什么不能在我的服务进程里使用ADO对象?
    • word2000关闭时会调用哪个dll
    • 關於COM組件的多線程問題

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有