1. 在Vs2010里创建一个MFC工程
2、打开ClassWizard窗口(查看—>建立类向导),选择Automation,单击AddClass按钮,选择Froma type library...,弹出文件选择对话框,之后定位到
C:\Program Files\MicrosoftOffice\OFFICE14\EXCEL.EXE。
添加 CApplication
Cfont0
CRange
CWorkbook
CWorkbooks
CWorksheet
CWorksheets

并在每个头文件中添加#include <afxdisp.h>

//以下是本人在程序中初始化函数中对表格的初始化 工作

     CApplication app;  CWorkbooks books;  CWorkbook book;  CWorksheets sheets;  CWorksheet sheet;  CRange range;  CRange cols;  CFont0 font;  LPDISPATCH lpDisp;HRESULT hr; hr = CoInitialize(NULL); //ASSERT(!FAILED(hr)); if(FAILED(hr)) { AfxMessageBox("Failed to call Coinitialize()"); }COleVariant covOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);if (!app.CreateDispatch(_T("Excel.Application"))){this->MessageBox(_T("无法创建Excel应用"));return;}try{books = app.get_Workbooks();}catch (CException* e){TCHAR   szError[1024];   e->GetErrorMessage(szError,1024);   //  e.GetErrorMessage(szError,1024); ::AfxMessageBox(szError); }books = app.get_Workbooks();lpDisp = books.Open(csFilename,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional);book=books.Add(covOptional);book.AttachDispatch(lpDisp);sheets = book.get_Sheets();sheet = sheets.get_Item(COleVariant((short)1));range.AttachDispatch(sheet.get_Cells(),TRUE);//加载所有单元格 font.AttachDispatch(range.get_Font());  font.put_Name(_variant_t(_T("宋体")));  font.put_Size(_variant_t(12));  //   font.put_Color(_variant_t(RGB(255, 0, 0))); //设置对其方式 中间对其range.put_HorizontalAlignment(_variant_t((long)-4108));//设置行高range.put_RowHeight(COleVariant((long)20));//设置列宽range=sheet.get_Range(COleVariant("A1"),COleVariant("A1"));range.put_ColumnWidth(_variant_t(10));  range=sheet.get_Range(COleVariant("B1"),COleVariant("B1"));range.put_ColumnWidth(_variant_t(30));  range=sheet.get_Range(COleVariant("C1"),COleVariant("C1"));range.put_ColumnWidth(_variant_t(10));  range=sheet.get_Range(COleVariant("D1"),COleVariant("D1"));range.put_ColumnWidth(_variant_t(30));  range=sheet.get_Range(COleVariant("E1"),COleVariant("E1"));range.put_ColumnWidth(_variant_t(15));  range=sheet.get_Range(COleVariant("F1"),COleVariant("F1"));range.put_ColumnWidth(_variant_t(15));  range=sheet.get_Range(COleVariant("G1"),COleVariant("G1"));range.put_ColumnWidth(_variant_t(30));  range=sheet.get_Range(COleVariant("H1"),COleVariant("H1"));range.put_ColumnWidth(_variant_t(30));  range=sheet.get_Range(COleVariant("I1"),COleVariant("I1"));range.put_ColumnWidth(_variant_t(20));  //保存并释放book.Save();app.Quit();app.ReleaseDispatch();book.ReleaseDispatch();books.ReleaseDispatch();sheet.ReleaseDispatch();sheets.ReleaseDispatch();range.ReleaseDispatch();
该函数在线程中调用,插入并更新数据
void CPackingDlg::Insert_Data1(int row)
{CApplication app;  CWorkbooks books;  CWorkbook book;  CWorksheets sheets;  CWorksheet sheet;  CRange range;  CRange cols;  CFont0 font;  CString csFilename="";Path = Cs_Zhiling + GongXu;GetCurrentPath(g_szWorkDir);csFilename.Format("%s\\%s.xls", g_szWorkDir,Path);LPDISPATCH lpDisp;HRESULT hr; hr = CoInitialize(NULL); //ASSERT(!FAILED(hr)); if(FAILED(hr)) { AfxMessageBox("Failed to call Coinitialize()"); MyListShowSystem("Failed to call Coinitialize()");}COleVariant covOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);if (!app.CreateDispatch(_T("Excel.Application"))){this->MessageBox(_T("无法创建Excel应用"));MyListShowSystem("无法创建Excel应用");return;}try{books = app.get_Workbooks();}catch (CException* e){TCHAR   szError[1024];   e->GetErrorMessage(szError,1024);   //  e.GetErrorMessage(szError,1024); ::AfxMessageBox(szError); }//  app.put_Visible(TRUE);
//  app.put_UserControl(TRUE); books = app.get_Workbooks();lpDisp = books.Open(csFilename,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional);book=books.Add(covOptional);book.AttachDispatch(lpDisp);sheets = book.get_Sheets();sheet = sheets.get_Item(COleVariant((short)1));CString str= "",strA= "",strB= "",strC= "",strD= "",strE= "",strF= "",strG= "",strH= "",strI= "",temp = "";str.Format("%d",row+1);strA = "A" + str;strB = "B" + str;strC = "C" + str;strD = "D" + str;strE = "E" + str;strF = "F" + str;strG = "G" + str;strH = "H" + str;strI = "I" + str;range=sheet.get_Range(COleVariant(strA),COleVariant(strA));//序号temp.Format("%d",Infor_detail.XuHao);range.put_Value2(COleVariant(temp));range=sheet.get_Range(COleVariant(strB),COleVariant(strB));//制令range.put_Value2(COleVariant(Infor_detail.ZhiLing));range=sheet.get_Range(COleVariant(strC),COleVariant(strC));//批次temp.Format("%d",Infor_detail.PiCi);range.put_Value2(COleVariant(temp));range=sheet.get_Range(COleVariant(strD),COleVariant(strD));//条形码range.put_Value2(COleVariant(Infor_detail.Code));range=sheet.get_Range(COleVariant(strE),COleVariant(strE));//产品序号range.put_Value2(COleVariant(Infor_detail.product_XuHao));range=sheet.get_Range(COleVariant(strF),COleVariant(strF));//工序range.put_Value2(COleVariant(Infor_detail.GongXu));range=sheet.get_Range(COleVariant(strG),COleVariant(strG));//入时间range.put_Value2(COleVariant(Infor_detail.time_in));book.Save();app.Quit();app.ReleaseDispatch();book.ReleaseDispatch();books.ReleaseDispatch();sheet.ReleaseDispatch();sheets.ReleaseDispatch();range.ReleaseDispatch();}



												

vs2010操作excel 需要安装office2010相关推荐

  1. VS2010操作Excel编程

    通过VC实现对Excel表格的操作的方法有多种,如:通过ODBC数据库实现,通过解析Excel表格文件,通过OLE/COM的实现.本文主要研究通过OLE/COM实现对Excel表格的操作. 本文源码的 ...

  2. python让工作自动化_python操作excel让工作自动化

    某局某领导给了3只excel文件,一只里面有4个sheet需要处理,一个sheet有250+列,算下来总共有3000+列需要手动反复插入.删除列.拷贝.求和,所以给了4天的时间要完成. 我不愿意做大量 ...

  3. python操作excel-自动化办公:python 操作Excel

    原标题:自动化办公:python 操作Excel 1.安装 pip install xlsxwriter or easy_install xlsxwriter or tar -zxvf xlsxwri ...

  4. python excel 自动化-python操作excel让工作自动化

    某局某领导给了3只excel文件,一只里面有4个sheet需要处理,一个sheet有250+列,算下来总共有3000+列需要手动反复插入.删除列.拷贝.求和,所以给了4天的时间要完成. 我不愿意做大量 ...

  5. Open XML操作Excel导入数据

    项目中发现使用OleDb(using System.Data.OleDb)相关对象处理Excel导入功能,不是很稳定经常出问题,需要把这个问题解决掉.项目组提出使用OpenXML来处理Excel的导入 ...

  6. 小白用python处理excel文件-刚入门的小白用Python操作excel表格!使工作效率提升一倍不止!...

    前言 某局某领导给了3只excel文件,一只里面有4个sheet需要处理,一个sheet有250+列,算下来总共有3000+列需要手动反复插入.删除列.拷贝.求和,所以给了4天的时间要完成. 我不愿意 ...

  7. python自动化办公excel-自动化办公:python 操作Excel

    原标题:自动化办公:python 操作Excel 1.安装 pip install xlsxwriter or easy_install xlsxwriter or tar -zxvf xlsxwri ...

  8. python做excel自动化-python操作excel让工作自动化

    某局某领导给了3只excel文件,一只里面有4个sheet需要处理,一个sheet有250+列,算下来总共有3000+列需要手动反复插入.删除列.拷贝.求和,所以给了4天的时间要完成. 我不愿意做大量 ...

  9. VS2010 对Excel读写操作

    VS2010对Excel读写操作 一.开发环境 编程环境 VS2010 office版本 office 2010 注意 :这里office版本号不一定非得和vs版本号一致. 二.基本实现功能 基本实现 ...

  10. VS2010 对Excel读写操作

    https://blog.csdn.net/ywx123_/article/details/77074038 VS2010对Excel读写操作 一.开发环境 编程环境 VS2010 office版本 ...

最新文章

  1. Log probability 维基百科
  2. 【干货】值得收藏的 14 个 Linux 下 CPU 监控工具
  3. 每日一练(8)—— 野指针
  4. 12c oracle 激活_Oracle 12C 安装教程
  5. java date 时分秒_java Date 获得时分秒代码
  6. django 1.8 官方文档翻译: 1-2-6 编写你的第一个Django应用,第6部分
  7. 字符串拼接之+=和join()的比较
  8. 老大加需求:做一个支持超大文件HTTP断点续传的上传服务,我懵逼了~
  9. python mpi4py 读取json_mpi4py 点到点通信总结
  10. 在vue中使用echarts实现飞机航线 水滴图 词云图
  11. Linux CentOS 内核编译全流程:从安装vmware开始
  12. html 密码不小于六位怎么设置,192.168.1.1登录入口要六位密码是多少?
  13. 用于体外诊断的RPMI 1640培养基(不含氨基酸)
  14. 雨课堂知识点总结(十六)
  15. CT图像的窗宽窗位(VTK及3Dslicer中的使用)
  16. 动态规划(Dynamic Programming)与贪心算法(Greedy Algorithm)
  17. 复合选择器之后代选择器
  18. miui8.5开发者选项USB调试模式
  19. redis的redis.config文件配置与内容+10.30日之前的总结
  20. 2022年第6周(1月31日-2月6日)中国各地区电影票房排行榜:江苏票房夺冠,河南票房环比增幅最大(附热榜TOP31详单)

热门文章

  1. spring与jdk版本要求
  2. HTML页面日历插件
  3. Silverlight4启动无法调试
  4. 数据结构试卷(一)及答案
  5. 数据结构试卷三(含答案)
  6. ukey证书是什么意思_什么是证书?
  7. DNF最新纯图色脚本框架2022-4-27
  8. 离散数学题库管理系统
  9. 根据MIDlet套件(Jar文件)自动生成jad文件
  10. 遥感信息分析与应用期末复习题