vs2010写入EXCEL数据(二)

#vs2010写入EXCEL数据(二)
可以更改数据,插入公式,编辑背景颜色,控制格式等
1.2007版本的EXCEL
2.VS2010使用MFC
3.新建一个DLG后,加载各个.h文文件。具体步骤:在vs2010中 项目->添加类->TypeLIb中的MFC类->点击添加->在弹出来的对话框中,选择从以下来源添加类,选注册表->可用的类型库中找到Microsoft Excel 12.0 Object Library<1.6>(位置:C:\Program Files\Microsoft Office\OFFICE12\EXECEL.EXE)
4.选择需要的接口进行添加:_Application, _Workbook, _Worksheet, Font,Range,Shapes,Sheets,Interior,window,生成对应的CApplication.h,CWorkbook.h,CWorksheet.h,CFont0.h,CRange.h,CShapes,CSheets,Cnterior,CWindow0.h.
5.在创建的DlgGexcelDlg.h中,将这些.h Include进去,
eg:#include “CRange.h”
#include “CWorkbook.h”
#include “CWorkbooks.h”
#include “CWorksheet.h”
#include “CWorksheets.h”
#include “CApplication.h”
#include “CFont0.h”
#include “CShapes.h”
//#include “CShape.h”
#include “CShapeRange.h”
#include “Cnterior.h”
#include “CWindow0.h”
6.通过编译会进行报错:CRange.h中的 VARIANT DialogBox()报错
处理方法:在报错的地方将:VARIANT DialogBox()改为VARIANT _DialogBox();
7.编译通过后可进行操作即可

以下添加一些常用操作:
CWorkbooks books;
CWorkbook book;
CApplication app;
CWorksheets sheets;
CWorksheet sheet;
CRange range,rgBMP;
CRange cols;
CFont0 font;
Cnterior bkClr;
CWindow0 wndFroze;
COleVariant covOptional((long) DISP_E_PARAMNOTFOUND,VT_ERROR);
if (!app.CreateDispatch(“Excel.Application”))
{
this->MessageBox(“无法创建应用”);
return;
}
//获取工作薄集合
books=app.get_Workbooks();
// 添加一个工作薄
book=books.Add(covOptional);
//获取工作表集合
sheets= book.get_Worksheets();
//获取第一个工作表
sheet = sheets.get_Item(COleVariant ((short)1));
//选择工作表中(A1,1)(B,1)单元格区域
range = sheet.get_Range(COleVariant(“A1”),COleVariant(“A1”));
//公式设置"=RAND()*100000"
range.put_Formula(COleVariant("=RAND()*1000"));
//选择整列,并设置宽度为自适应
cols =range.get_EntireColumn();
cols.AutoFit();
//设置 字体为 粗体
font = range.get_Font();
font.put_Bold(COleVariant((short)TRUE));
//设置数字格式为货币型
//range.put_NumberFormat(COleVariant("$0.00"));
CString Range327[]={“C1”,“C2”,“C3”,“C4”,“C5”,“C6”};
CString fileinfo[]={“齿形”,“齿向”,“齿距”,“左齿面”,“右齿面”,“径跳”};
for (int i=0;i<6;i++){
range = sheet.get_Range(COleVariant(Range327[i]),COleVariant(Range327[i]));
range.put_Value2(COleVariant(fileinfo[i]));
}
从Sheet对象上获得一个Shapes
//Shapes shapes = sheet.get_Shapes();
获得Range对象,来插入图片
//range= sheet.get_Range(COleVariant(“D16”),COleVariant(“J22”));
//rgBMP=range;
从本地添加一个图片
//shapes.AddPicture(“D:\Test.jpg”,false,true,(float)range.get_Left().dblVal,(float)range.get_Top().dblVal,(float)range.get_Width().dblVal,(float)range.get_Height().dblVal);
设置宽高
//ShapeRange sRange=shapes.GetRange(_variant_t(long(1)));

		//sRange.SetHeight(float(30));
		//sRange.SetWidth(float(30));

		//选择整列,设置宽度自适应
		cols = range.get_EntireColumn();
		cols.AutoFit();
		//显示列表控件
		app.put_Visible(TRUE);
		//允许其他用户控制EXCEL,否则EXCEL将一闪而过
		//app.put_UserControl(TRUE);
		book.SaveCopyAs(COleVariant(strFileName));
		book.put_Saved(true);
		

		//--修改EXCEL单元格
		//range= sheet.get_Range(COleVariant())
		//--
		LPDISPATCH lpDisp;
		//-打开文件
		lpDisp = books.Open(strFileName,
			                covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,
							covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional
							);
		//得到的视图workbook
		book.AttachDispatch(lpDisp);
		//得到workssheet
		sheets.AttachDispatch(book.get_Worksheets());
		//得到sheet
		lpDisp =book.get_ActiveSheet();
		sheet.AttachDispatch(lpDisp);
		//获取用户区
		CRange userRange;
		userRange.AttachDispatch(sheet.get_UsedRange());
		//得到用户区的行数
		range.AttachDispatch(userRange.get_Rows());
		long rowNum = range.get_Count();
		//得到用户去列数
		range.AttachDispatch(userRange.get_Columns());
		long colNum =  range.get_Count();
		//WinExec(strFileName,SW_SHOW);
		//ShellExecute(0&,NULL,strFileName,NULL,NULL,NULL);
	
		//得到用户区的开始行和开始列
		//--设置底色
		bkClr.AttachDispatch(range.get_Interior());
		bkClr.put_ColorIndex(_variant_t((long)11));//标题底色 _variant_t((long)11)
		表格内容的底色
		range.AttachDispatch(sheet.get_Range(COleVariant("C1"),COleVariant("C3")));
		bkClr.AttachDispatch(range.get_Interior());
		bkClr.put_ColorIndex(_variant_t((long)11));//标题底色

		--冻结窗口
		wndFroze.AttachDispatch(app.get_ActiveWindow());
		wndFroze.put_SplitRow(_variant_t((long)1));//冻结第一行
		wndFroze.put_FreezePanes(TRUE);

		//将对应Excel进程关闭
		range.ReleaseDispatch();
		sheet.ReleaseDispatch();
		sheets.ReleaseDispatch();
		book.ReleaseDispatch();
		books.ReleaseDispatch();
		//以下关闭应用的两条代码结合使用且顺序不能反,否则无法关闭进程
		app.Quit();
		app.ReleaseDispatch();

参考:1。https://wenku.baidu.com/view/aece6e42f4335a8102d276a20029bd64793e6254.html
2。https://www.docin.com/p-1499229107.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 将.m文件转换成Excel格子可能需要进一些数据处理和格式化,具体方法如下: 1. 打开MATLAB软件,将.m文件导入到MATLAB工作区。 2. 在MATLAB命令窗口输入“help xlswrite”命令,查看如何使用xlswrite函数将数据写入Excel文件。 3. 根据xlswrite函数的语法格式,将MATLAB工作区中的数据写入Excel文件。 4. 打开Excel文件,进格式化和调整,使数据呈现出你需要的形式。 注意:如果你的.m文件含有复杂的数据结构,需要先对数据处理,以便能够正确地将数据写入Excel文件中。 ### 回答2: 要将.m文件转换成Excel格,首先需要明确.m文件的内容和格式。如果.m文件是一个纯文本文件,里面包含了一些表格数据,那么可以通过以下步骤转换成Excel格: 1. 打开.m文件,将文件内容复制到一个文本编辑器中,例如记事本或文本编辑器。 2. 找到每一数据,并按照数据之间的分隔符分割成不同的列。分隔符可以是空格、制表符、逗号等,根据.m文件的具体格式来定。 3. 将分割后的数据粘贴到Excel表格中,并按照需要调整列的格式和数据类型。 4. 最后将Excel表格另存为.xlsx或.xls格式的文件,完成.m文件转换成Excel格的过程。 需要注意的是,这种转换方式适用于.m文件只包含表格数据的情况。如果.m文件中包含了一些其他的代码或函数,那么只能手动提取出相关的表格数据转换。 另外,如果.m文件是Matlab脚本或函数文件,其中含有数据处理或计算的代码,想要将计算结果以表格的形式导出到Excel中,可以使用Matlab内置的导出函数,例如xlswrite,将数据直接写入Excel文件中。具体用法可参考Matlab的帮助文档或查阅相关教程。 ### 回答3: 要将.m文件转换成Excel格,你需要按照以下步骤进操作: 1. 首先,确保你的.m文件中包含了要转换的数据。如果没有,你需要在.m文件中添加相应的数据。 2. 打开MATLAB软件,点击菜单栏中的"文件",选择"打开",然后在弹出的对话框中选择你的.m文件,点击"打开"按钮。 3. 在MATLAB的命令窗口中输入命令"load 文件名",将.m文件中的数据加载到MATLAB的工作空间中。 4. 接下来,使用MATLAB提供的处理数据和文件的函数来将数据转换成Excel格。你可以使用"xlswrite"函数将数据写入Excel文件。 5. 在MATLAB的命令窗口中输入以下命令:xlswrite('文件名.xlsx',数据),将数据写入Excel文件中。请确保你在命令中提供正确的文件名和数据。 6. 如果需要指定数据写入的位置和格式,可以在命令中添加额外的参数。例如,你可以指定要写入的工作表名称、写入的起始位置等。详细的参数使用方法可以参考MATLAB的帮助文档。 7. 执以上命令后,MATLAB会将数据写入Excel文件中,并保存在你指定的文件名中。 8. 最后,你可以打开Excel文件,查看数据是否成功转换并保存。 这些步骤可帮助你将.m文件中的数据转换成Excel格。请根据你的具体需求和数据格式做相应的调整和修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值