用Excel快速实现测井柱状图的绘制
更新时间:2024-06-22 15:46:01 阅读量: 综合文库 文档下载
- excel快速出柱状图推荐度:
- 相关推荐
用Excel快速实现测井柱状图的绘制
李广超 (工程物探院)
[摘 要] 利用COM编程中的自动化技术,蚩?SPAN lang=EN-US>Excel文件,进行绘图,达到快速制作油气和工程物探测井柱状图的目的,使用该方法充分利用Excel的强大功能,方便用户。 [关键词] 〖HTSS〗Excel COM 测井柱状剖面图
Excel是一个出色的电子表格软件,是迄今为止市场上功能最强的电子表格软件,从大型的企业公司到个人家庭都是应用最广泛的,有良好的用户基础,具有友好的界面,功能强大的数据计算能力和内部函数,还可以把数据以各种统计图的形式形象的表示出来,进行数据分析。
Excel既是一个独立运行的程序,也是一个遵循COM(Commponent Object Model组件对象模型)标准的服务器接口构件,COM是微软公司制定的构造二进制兼容软件的规范,目的是让开发者和使用者脱离,这样用户可以使用COM构件随意组装,利用它们实现自己的功能,完成软件开发工作,通过简单的编程达到专业的效果。
石油测井或水利工程测井柱状剖面图,来表征和展示地下的各种地质信息。柱状剖面图简称柱状图,以探测深度作为垂直坐标,地层、岩性、以及各种测井曲线和解释成果用符号表示出来。
测井主要以各种岩石的物性差异为基础,通过相应的地球物理方法,连续测定反映岩石物理性质的参数,并在分析这些物理参数沿井深剖面变化规律的基础上,了解油气储集层的地下分布规律,评价油气储集层的生产能力以及解决工程地质方面的问题。测井已经成为目前石油和工程地质上不可缺少的手段,对测井资料利用的好坏程度将直接和间接地影响勘探成果的质量,而资料成图在利用测井资料方面占着至关重要的角色。当前测井绘图方面的软件都有着不同程度的不尽人意之处,结合工作实际,编制了该程序。
1 基本设计思想
将测井数据导入Excel,解释成果按照一定的格式输入。启动程序,打开数据文件,程序提示你输入标题、比例、字体等,然后程序根据你选择的数据页面控制Excel自动绘制图形,绘制结束后用户不满意的地方还可以Excel中再修改。在绘制柱状图的岩性时,利用的是图库调入,节约了绘制符号的时间,提高了效率,另外,用户还可以自己添加图库,以期能够更加完美地表达自己的意思,做到“以人为本”的设计理念。
图1 基本流程
2 编程实现
在程序设计的时候,利用的编译环境是C++ Builder5.0,用到的技术是COM编程中的Automation。在编程的时候,力求多做工作,就会很容易上手,用的时候也会很轻松。
2.1 主要编程技术
在编程过程中,我选用引入类型库的方法,这样可以利用类型库查询服务器对象(也即Excel)在C++外套包装下的说明,可以查询要用到的方法的参数类型和返回值,这一点很重要。在调用中,采用了Interface智能接口的方法,通过函数的调用,返回需要的对象,然后就可以采用伪指针的语法直接调用该对象的方法。
2.2 启动Excel服务器
部分实现的代码,在打开文件时如下所示:
Excel_tlb :: TCOM_Application m_XLApp ; //定义Excel对象 Excel_tlb :: WorksheetPtr m_Workbook ;//定义worksheet对象 Excel_tlb :: WorkbookPtr m_Workbook ;//定义workbook对象 Void_fastcall TForm1:Button1Click(Toject *Sender)
{
if(OpenDialog1->Execute()) { try {
if (!m_XLApp) //判断Excel服务器是否打开 {
m_XLApp=CoApplication_::Create(); //没有打开,就创建Excel服务器对象
m_XLApp->set_Visible(0, true); //使Excel显示运行
m_XLApp->Caption=WideString(OpenDialog1->FileName );//设置Excel的标题
m_Workbook=m_XLApp->Workbooks->Add(WideString(OpenDialog1->Fil eName));//打开选择的Excel文件薄 } // end if else {
m_XLApp->set_Visible(0, true);//如果服务器已经打开,就显示出来 m_XLApp->Caption=WideString(OpenDialog1->FileName );
m_Workbook=m_XLApp->Workbooks->Add(WideString( OpenDialog1->FileName)); }
}//end of try catch(...) {
ShowMessage(″Cant Open File!″); } }
上面这段程序比较简单易懂,也有比较清楚地注释,不用多做解释,其功能就是在程序打开文件的菜单里,控制Excel的启动并打开了用户所选择的Excel文件。这一步对程序来说却是很重要的,没有这些其他就无从谈起。 m_XLApp->Workbooks->Add(xlWBATWorksheet,0);
m_Worksheet=m_XLApp->Workbooks->get_Item(1)->Worksheet->get_Item(1); m_Worksheet->Name=WideString(“我添加的页面\; for(int i=1;i<=20;i++) {
m_Worksheet->Cells->set_Default(i,1,i*10); m_Worksheet->Cells->set_Default(i,2,i*15); }
m_SheetRange=m_Worksheet->get_Range(“C1:F10\; m_SheetRange->Formula=“RAND()\;
上面的一段程序用于在Excel中添加一个工作表,然后将它赋给一个工作表对象指针,将此工作表的名字改为“我的添加页面”;在循环里在工作表中插入了40个数据,分别添加在工作单的第一、第二列的前二十个单元格中,最后两句用0和1之间的随机数填充C1到F10之间的所有单元。这是向Excel单元格中写入数据,那么同样的道理,在绘制图形的时候,就可以从其中读取数据,绘制所需的图件了。
3 实例显示
下面给出该软件绘制的某钻孔石油综合测井地质剖面图的实例,只给出原图的部分图件如图2所示。
图2 石油测井柱状图
下面的是水利工程综合测井柱状图,此图中曲线的数据是模拟的。
图3 工程测井柱状图
4 作用及意义
此程序主要应用自动控制技术,操纵Excel,从Excel中读取数据,并在其中绘制图形,在编程中有一定难度,却实现了高速绘制图形,适用于原始和解释的资料成图,提高了工作效率,为在综合测井图形的绘制方面提供了新的途径。 该程序针对的是笔者单位在水利工程综合测井成图的格式编写的,有一定的局限性,改变绘制图形的框架结构,需要对程序作一点调整。
正在阅读:
用Excel快速实现测井柱状图的绘制06-22
雨中的小区作文400字06-17
2014四川政法干警面试备考技巧:备考期间“历练”好心态的方法03-16
废旧轮胎生产橡胶粉项目可行性报告书06-15
既有线涵洞接长施工专项方案 - 图文04-12
我想变成公主作文600字07-08
大学英语教学渗透文化背景知识的重要性07-19
产品APQP全套表单(含设计)08-18
21世纪大学英语应用型综合教程修订版4课本练习答案09-03
学生社会实践活动安全预案09-20
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 柱状
- 测井
- 绘制
- 快速
- 实现
- Excel
- 叠层式层压机
- 包 头 市
- QC小组活动基础知识Microsoft Word 文档
- 电梯日常安全管理制度13.07.18
- 蓝牙技术研究综述
- 奇门遁甲讲义(叶飘然)
- 扬州市2008年初中毕业、升学统一考试历史试题及答案
- 道路、管道、泵站施工方案
- 国际贸易实务复习
- 体育部工作总结
- 微课设计 29 呼风唤雨的世纪
- 关于进一步加强基金管理公司及其子公司从事特定客户资产管理业务
- 大唐洛阳热电厂2011年春节期间安全生产保证措施
- 2018年中国硅碳棒现状分析及市场前景预测(目录) - 图文
- 电气控制复习题答案
- 关于印发《社会消防安全教育培训大纲》的通知
- 西师版小学六年级上册语文教案 - 图文
- 幼儿园年检报告书
- 语文课程标准规定小学生必背古诗300首
- 社会保障