vs2010操作excel 需要安装office2010
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相关推荐
- VS2010操作Excel编程
通过VC实现对Excel表格的操作的方法有多种,如:通过ODBC数据库实现,通过解析Excel表格文件,通过OLE/COM的实现.本文主要研究通过OLE/COM实现对Excel表格的操作. 本文源码的 ...
- python让工作自动化_python操作excel让工作自动化
某局某领导给了3只excel文件,一只里面有4个sheet需要处理,一个sheet有250+列,算下来总共有3000+列需要手动反复插入.删除列.拷贝.求和,所以给了4天的时间要完成. 我不愿意做大量 ...
- python操作excel-自动化办公:python 操作Excel
原标题:自动化办公:python 操作Excel 1.安装 pip install xlsxwriter or easy_install xlsxwriter or tar -zxvf xlsxwri ...
- python excel 自动化-python操作excel让工作自动化
某局某领导给了3只excel文件,一只里面有4个sheet需要处理,一个sheet有250+列,算下来总共有3000+列需要手动反复插入.删除列.拷贝.求和,所以给了4天的时间要完成. 我不愿意做大量 ...
- Open XML操作Excel导入数据
项目中发现使用OleDb(using System.Data.OleDb)相关对象处理Excel导入功能,不是很稳定经常出问题,需要把这个问题解决掉.项目组提出使用OpenXML来处理Excel的导入 ...
- 小白用python处理excel文件-刚入门的小白用Python操作excel表格!使工作效率提升一倍不止!...
前言 某局某领导给了3只excel文件,一只里面有4个sheet需要处理,一个sheet有250+列,算下来总共有3000+列需要手动反复插入.删除列.拷贝.求和,所以给了4天的时间要完成. 我不愿意 ...
- python自动化办公excel-自动化办公:python 操作Excel
原标题:自动化办公:python 操作Excel 1.安装 pip install xlsxwriter or easy_install xlsxwriter or tar -zxvf xlsxwri ...
- python做excel自动化-python操作excel让工作自动化
某局某领导给了3只excel文件,一只里面有4个sheet需要处理,一个sheet有250+列,算下来总共有3000+列需要手动反复插入.删除列.拷贝.求和,所以给了4天的时间要完成. 我不愿意做大量 ...
- VS2010 对Excel读写操作
VS2010对Excel读写操作 一.开发环境 编程环境 VS2010 office版本 office 2010 注意 :这里office版本号不一定非得和vs版本号一致. 二.基本实现功能 基本实现 ...
- VS2010 对Excel读写操作
https://blog.csdn.net/ywx123_/article/details/77074038 VS2010对Excel读写操作 一.开发环境 编程环境 VS2010 office版本 ...
最新文章
- Log probability 维基百科
- 【干货】值得收藏的 14 个 Linux 下 CPU 监控工具
- 每日一练(8)—— 野指针
- 12c oracle 激活_Oracle 12C 安装教程
- java date 时分秒_java Date 获得时分秒代码
- django 1.8 官方文档翻译: 1-2-6 编写你的第一个Django应用,第6部分
- 字符串拼接之+=和join()的比较
- 老大加需求:做一个支持超大文件HTTP断点续传的上传服务,我懵逼了~
- python mpi4py 读取json_mpi4py 点到点通信总结
- 在vue中使用echarts实现飞机航线 水滴图 词云图
- Linux CentOS 内核编译全流程:从安装vmware开始
- html 密码不小于六位怎么设置,192.168.1.1登录入口要六位密码是多少?
- 用于体外诊断的RPMI 1640培养基(不含氨基酸)
- 雨课堂知识点总结(十六)
- CT图像的窗宽窗位(VTK及3Dslicer中的使用)
- 动态规划(Dynamic Programming)与贪心算法(Greedy Algorithm)
- 复合选择器之后代选择器
- miui8.5开发者选项USB调试模式
- redis的redis.config文件配置与内容+10.30日之前的总结
- 2022年第6周(1月31日-2月6日)中国各地区电影票房排行榜:江苏票房夺冠,河南票房环比增幅最大(附热榜TOP31详单)