999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Excel-VBA的深水井柱狀圖繪制程序的設計和實現

2015-08-19 08:35:50劉守東李怡文河南省周口水文水資源勘測局
河南水利與南水北調 2015年22期
關鍵詞:深度

□劉守東 □李怡文(河南省周口水文水資源勘測局)

0 引言

繪制鉆孔柱狀圖是鑿井工作中的一項重要工作。隨著計算機圖形技術的普及,利用計算機繪制深水井柱狀圖取代了費時、費力、容易出錯的傳統手工繪制方法逐漸成為了主流。目前,計算機繪制柱狀圖主要是利用MapGis、AutoCad 等商業繪圖軟件制作,往往需要大量的軟件授權費。針對上述問題,特別是只需要生成柱狀圖的簡單繪圖場合,文章提出了一種新的解決方案:采用MicrosoftExcel 為基礎平臺,利用MicrosoftExcel 內嵌的VBA 編程環境,快速生成深水井柱狀圖。

1 深水井柱狀圖的數據組織結構

如圖1所示,一張典型的深水井柱狀圖可以拆分3 個部分:表頭、深度標尺、累進的地層數據。表頭、深度標尺格式固定,不需要專門組織數據描述,因此描述一張深水井柱狀圖只需組織數據描述累進的地層數據即可。累進的地層數據由一個個的地層數據組成,每一個地層數據又包含5 個屬性,分別是:層底深度、層厚、剖面、巖性、井斜。其中,剖面為填充圖形,可由地層數據的巖性屬性推出,故在程序設計中,用層底深度、層厚、巖性、井斜4 個屬性來描述一個地層數據。利用MicrosoftExcel 數據表本身的行列組織性質,柱狀圖累進的地層數據可以如下組織:

以數據表一行表達單個地層數據,遞增的行數表達地層數據累進的關系。以數據表中一行的前4 列表達單個地層數據的層底深度、層厚、巖性、井斜4 個屬性。

圖1 典型深水井柱狀圖及組成部分示例圖

如圖2所示,繪制一張深層井柱狀圖就簡化為輸入以MicrosoftExcel 數據表本身行列組織結構表達的累進地層數據。

2 深水井柱狀圖的描繪

如圖1所示,一張典型的深水井柱狀圖可以拆分3 個部分:表頭、深度標尺、累進的地層數據。相應的柱狀圖的描繪也是分為同樣的3 部分先后描繪。

圖2 累進地圖數據在MicrosoftExcel 中的表達圖

2.1 表頭的繪制

由于表頭格式固定且需要工作表來容納即將生成的深水井柱狀圖,故事先在工作簿中建立含有完整表頭的工作表。將事先建立的包含表頭的工作表通過VBA 操作拷貝重命名即可完成上述兩項任務。

表頭繪制主要涉及對工作表對象的操作,相關模塊的偽碼如下:

//復制“原件”工作表;

Sheets("原件").CopyBefore:=Sheets(2);

//將復制的工作表重命名;

Sheets("原件(2)").Name="柱狀圖"。

2.2 深度標尺的繪制

深度標尺涉及深度數據的表達的同時,還需要表達出地層數據的精度,例如層底深度最常見的是精確到小數點后一位或者兩位。MicrosoftExcel 中沒有相關的概念,為此程序設計中利用單元格行高來表達精度、將多個單元格合并來表達深度數據。以圖一所示柱狀圖為例,每個深度標尺為25m,地層數據的精度為小數點后兩位。為了表達出此柱狀圖的深度和精度數據,使用VBA 操作單元格對象,將繪圖區單元格行高設置為0.01,同一列的2500 個單元格合并成一個單元格,以此合并后的單元格作為一個深度標尺。由于深度標尺是以一定量累進的,使用VBA 中的For-Next 語句構建循環,以此以上述方法依次畫出每一個深度標尺。

深度標尺繪制主要涉及對單元格對象的操作,以圖一所示柱狀圖為例,相關模塊的偽碼如下:

//柱狀圖開始的地層深度;

DimiBgnAsInteger;

//柱狀圖結束的地層深度

DimiEndAsInteger

//計算繪圖區所需要的行數并在For-Next 循環中設置每一行行高

ForrowCnt=5To((iEnd-iBgn)/25+1)*2500+5

//設置一行行高

Rows(rowCnt).RowHeight=0.01

Next

//計算出需要描繪的深度標尺數量

DimiCntAsInteger

iTmp1=(iEnd+12.499)/25

iTmp2=(iBgn-12.499)/25

iCnt=iTmp1-iTmp2

//For-Next 循環中,描繪每一個深度標尺

Forcnt=0ToiCnt-1

//計算出所需要描繪深度標尺所占單元格,并選擇

Cells(5+cnt*2500,1).Resize(2500,1).Select

//合并選中的單元格

Selection.Merge

//設置合并后單元格的字體、對其方式等各種屬性

WithSelection

.HorizontalAlignment=xlCenter

.VerticalAlignment=xlBottom

…….

//計算當前單元格對應深度標尺的深度并設置

DimiTmpAsInteger

iTmp=(iBgn-12.499)/25+cnt+1

ActiveCell.Value=iTmp*25

Next

2.3 地層數據的繪制

地層數據的繪制類似于深度標尺的繪制,不同的是:地層數據根據其層厚屬性來決定需要合并的單元格,依次在不同列的合并單元格里填充屬性數字和填充圖形。

柱狀圖剖面列為填充圖形,由地層數據的巖性屬性推出。為此,在程序設計中,將每種巖性和其要填充的圖形單獨列出(如圖3所示)。描畫時,讀取巖性屬性,利用VBA 的查找函數,找出該巖性屬性所在單元行。根據查找到的行,偏移一列,讀取該單元格的圖案屬性,將查到的圖案屬性填充到柱狀圖剖面列所要填充的合并單元格中。

圖3 巖性填充圖

剖面列圖形填充主要涉及對VBA 的查找功能以及單元格對象屬相的賦值,以圖1所示柱狀圖為例,相關模塊的偽碼如下:

3 結語

目前該程序設計只是基于特定柱狀圖描畫(游標刻度尺25m遞進,地層數據精確的小數點后兩位)設計,在用戶友好性和通用性方面有所不足。在實際使用中,可將柱狀圖可變量,例如游標刻度尺遞進數、地層數據精確度,設計成輸入變量,根據讀取的數值描畫,增加程序的通用性。同時,在輸入界面加入對話框、按鈕,做到一鍵描畫,增加程序的易用性。

猜你喜歡
深度
深度理解不等關系
四增四減 深度推進
深度理解一元一次方程
深度觀察
深度觀察
深度觀察
深度觀察
芻議深度報道的深度與“文”度
新聞傳播(2016年10期)2016-09-26 12:14:59
提升深度報道量與質
新聞傳播(2015年10期)2015-07-18 11:05:40
微小提議 深度思考
主站蜘蛛池模板: 欧美精品二区| a在线亚洲男人的天堂试看| 精品自窥自偷在线看| 日本午夜影院| 国产va在线观看| 日韩精品一区二区三区中文无码| 国产一级毛片在线| 中文字幕 欧美日韩| 操国产美女| 永久在线播放| 永久免费AⅤ无码网站在线观看| 亚洲va精品中文字幕| 国产玖玖视频| 真实国产精品vr专区| 在线免费看黄的网站| 91久久国产成人免费观看| 国产一区在线视频观看| 99精品高清在线播放| 不卡午夜视频| 亚洲欧洲综合| 国产jizzjizz视频| 欧美A级V片在线观看| 青青青亚洲精品国产| 国产成人福利在线| 伊人久久综在合线亚洲2019| 青青草综合网| 精品国产免费观看一区| 无码日韩人妻精品久久蜜桃| 日韩欧美中文字幕在线精品| 538精品在线观看| 亚洲αv毛片| 综合色亚洲| 欧美亚洲日韩中文| 中日无码在线观看| 免费无遮挡AV| 亚洲日产2021三区在线| 欧美一级视频免费| av天堂最新版在线| 免费看的一级毛片| 久久伊人操| 久久超级碰| 亚洲综合狠狠| 久久久久中文字幕精品视频| 国产成人乱码一区二区三区在线| 熟女视频91| 性色生活片在线观看| 新SSS无码手机在线观看| 久久人体视频| 国产人人射| 青青青伊人色综合久久| 色偷偷男人的天堂亚洲av| lhav亚洲精品| 久久99国产乱子伦精品免| 国产 在线视频无码| 福利小视频在线播放| 国产精品久久久久久影院| 亚洲国产成人自拍| 香蕉网久久| 天天色天天综合网| 亚洲国产综合第一精品小说| 午夜免费视频网站| 伊人久综合| 久久精品66| 精品91在线| 国产亚洲男人的天堂在线观看| 五月六月伊人狠狠丁香网| 91福利一区二区三区| 欧美综合区自拍亚洲综合天堂| 国产精品成人第一区| 成年人国产网站| 一区二区影院| 国产自无码视频在线观看| 美美女高清毛片视频免费观看| 不卡午夜视频| 永久天堂网Av| 91av国产在线| 91极品美女高潮叫床在线观看| 国产一二三区视频| 2021国产精品自产拍在线| 免费国产黄线在线观看| 色亚洲成人| 亚洲欧洲日产国产无码AV|