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

基于VBA的石油地質數據處理

2018-10-25 11:06:56陳蜀曹劍利
計算機時代 2018年9期

陳蜀 曹劍利

摘 要: 海量數據處理是石油地質項目開展過程中的重要工作,若依靠純手工處理工作量巨大。文章提出了基于VBA數據批量處理方法,以氣藏數值模擬工藝改造數據的處理為例,在EXCEL中運用VBA進行編程,實現海量射孔數據的提取與標準化處理。首先從井史數據出發,借助文件對象打開對應井單的射孔數據文件,然后循環提取射孔數據中的相關數據信息,進行標準化處理后寫入工藝改造數據表格中,生成氣藏數值模擬的基礎數據體。針對示范工區數據處理表明,該方法不但極大地提高了氣藏數值模擬基礎數據的整理效率,同時也能克服人工處理因疲勞導致的錯誤,提高了數據處理的質量。

關鍵詞: VBA; EXCEL; 海量數據; 批處理

中圖分類號:TP399 文獻標志碼:A 文章編號:1006-8228(2018)09-48-03

Abstract: Massive data processing is often faced in the process of petroleum geological projects, and it is hard by manual process. This paper proposes a data batch processing method via VBA. Taking the data processing of numerical simulation process for gas reservoir as an example, the Excel spreadsheet is used with VBA programming to realize the massive perforation data extraction and standardized processing. Firstly, from well history data, opening the perforation data file of the corresponding well sheet with the help of the file object, then circularly extracting relevant data information from perforation data and writing into the data form of process modification after standardized processing, at last generating the basic data volume for numerical simulation of gas reservoir. Data processing for demonstration area shows that this method not only greatly improves the efficiency of sorting out the basic data of gas reservoir numerical simulation but also overcomes the errors caused by fatigue and improves the quality of data processing.

Key words: VBA; Excel; massive data; batch processing

0 引言

雖然Excel功能強大且提供了豐富的函數輔助數據處理,但仍然不能滿足一些特殊數據的處理要求。為了處理一些模型更為復雜的數據,我們可以利用Excel自帶的開發環境VBA實現數據處理在某些方面的特殊要求[1-2]。例如:Dydowicz, P.基于VBA對海量公司數據進行了批量格式轉換[3]。DJ Zhang利用Excel VBA進行本地奇點分析批量運算[4]。在Excel中,處理少量數據的時候可以人工操作處理,當數據處理需要不斷重復相同的操作時,可以用Excel中的錄制宏來操作,而當我們處理繁瑣并且重復量很大的數據時,VBA的編寫就可以幫助減少大量重復的工作。VBA屬于面向對象的編程語言,具有易理解、語法簡單的特點,加之,VBA是針對某個特定程序開發,利用簡單的代碼即可完成復雜的功能[5-6]。VBA處理數據比其他語言處理數據需要編寫的代碼量少,簡單易操作,不僅能提高效率節省時間,還能大大提高數據正確率。本文針對VBA在油氣勘探開發中海量數據處理的應用開展了研究,運用其實現了高效地數據整理與標準化工作。

1 工作流程

基于VBA的海量數據批量處理會涉及多個射孔數據表與一個井單表,射孔數據表存放于一個單獨的射孔數據文件夾中,首先通過循環一個工作簿中“井號”表單中的井名,依次在射孔數據文件夾中查找對應井號的工作簿,并依次將其打開,然后逐個復制其中關鍵信息,粘貼到首次打開的工作簿中的“工藝改造數據”表單中指定的位置,經過整理,生成氣藏數值模擬的基礎數據體。

2 實現方法

2.1 文件的讀取

2.1.1 使用FSO對象

讀取射孔數據文件夾需要創建一個FSO對象,它不僅可以實現文件的創建、改變、移動和刪除,而且可以檢測是否存在指定的文件夾。此外,FSO 對象模型還可以獲取關于文件和文件夾的信息,如名稱、創建日期或修改日期等以及系統中使用的驅動器的信息。FileSystemObject是FSO對象模型中最主要對象,它提供了一套完整的可用于創建、刪除文件和文件夾,收集驅動器、文件夾、文件相關信息的方法。

創建FSO對象的關鍵代碼:

Set objFileSystem=CreateObject("Scripting

.FileSystemObject")

2.1.2 獲取文件路徑

每口井的射孔數據都存放在同一個文件夾中,而數據的處理需要先獲取這個文件夾的路徑。

獲取文件夾路徑的關鍵代碼:

strPath=ActiveWorkbook.Path+"\射孔數據\"

2.2 設置輸出表頭

工作簿中的“工藝改造數據”表中有相應的表頭,在指定的位置寫入對應的表頭,同時,對存放數據的區域單元格進行格式設置。

2.2.1 寫入表頭

在該工作簿中的“工藝改造數據”表單中寫入表頭,需要用到Excel中的Range對象,它代表Excel中的單元格,可以是單個單元格,也可以是單元格區域。通過VBA中的Range屬性,依次將表頭數據寫入到指定的單元格中。

寫入表頭關鍵代碼,以A列為例:

Range("A1")="DATE(dd.mm.yyyy)"

2.2.2 設置格式

利用Columns屬性中的NumberFormatLocal屬性,以用戶語言字符串設置對象的格式代碼,將指定區域的單元格格式設置為文本格式。

設置格式關鍵代碼,以A列為例:

Columns("A").NumberFormatLocal="@"

2.3 數據批量提取與處理

2.3.1 打開井號對應的射孔數據

⑴ 計算“井號”表單中井口的數量,首先定義一個wellCount接收“井號”表單中的井口數量,Range對象的CurrentRegion屬性可以返回包含指定單元格在內的一個連續的矩形區域,Rows表示某個區域中所有行組成的集合,通過Count屬性返回工作簿中所有的工作表數量。

計算井口數量關鍵代碼為:

wellCount=Range("A1").CurrentRegion.Rows.Count-1

⑵ 定義一個wellName獲取井號,通過當前活動單元格ActiveCell屬性的Value值,來獲取當前單元格的井號。通過Trim函數,移除字符串兩側的空白字符或其他預定義字符。

獲取井號關鍵代碼為:

wellname=Trim(ActiveCell.Value)

⑶ 打開工射孔數據文件,即對應井號的射孔數據。定義wellFile存放射孔數據文件路徑,通過OFS對象的fileExists方法判斷射孔數據文件是否存在,若存在,則通過Workbooks中的Open事件打開射孔數據。

打開射孔數據關鍵代碼為:

wellFile=strPath+wellname+".xlsx"

If objFileSystem.fileExists(wellFile) Then

Application.Workbooks.Open wellFile

⑷ Worksheet對象的UsedRange屬性可以返回工作表中已經使用的單元格圍成的矩形區域,首先計算出“工藝改造數據”表單中將“工藝改造數據”表中已經使用的單元格圍成的矩形區域的行數,插入“工藝改造數據”表并使每個區域與下一個區域之間有兩行的距離。通過Range對象的Value屬性為指定的單元格賦值。

以A列為例,關鍵代碼為:

insertWellIndex=ActiveSheet.UsedRange.Rows.Count+2

myRange="A"+Trim(Str(insertWellIndex))

Range(myRange).Value="WELLNAME"

2.3.2 提取所需射孔數據寫入到“工藝改造數據”表中的指定位置

⑴ 計通過Range對象中的Count屬性計算工作簿2中的射孔數據條數。

計算射孔數據條數關鍵代碼為:

n=Range("A1").CurrentRegion.Rows.Count-1

⑵ 通過循環判斷射孔數據的條數是否大于1,對射孔數據進行遍歷,當射孔數據是1條時,說明只有表頭,故不進行操作,進入下一次循環;當射孔數據條數多于1條時,對射孔數據中的關鍵信息進行提取,并寫入到 “工藝改造數據”表指定單元格中。寫入其他信息,再提取工作簿1中的“井號”表單日期數據,處理后寫入“工藝改造數據”表中的指定單元格中。

以提取頂深為例,主要代碼為:

myRange="B"+Trim(Str(i+1))

Range(myRange).Select

Selection.Copy

'粘貼到指定單元格

myRange="F"+Trim(Str(insertWellIndex+i))

Range(myRange).Select

ActiveSheet.Paste

⑶ 通過Range對象的Value屬性,在“工藝改造數據”表單指定單元格中寫入其他信息。

以I列為例,關鍵代碼為:

myRange="I"+Trim(Str(insertWellIndex+i))

Range(myRange).Value=0.2

⑷ 通過Day方法,提取日期中的“日”;Month方法提取日期中的“月”;Year方法提取日期中的“年”。將“年”、“月”、“日”寫入到“工藝改造數據”表單中。

以“日”為例,關鍵代碼為:

currDay=Str(Day(currDate))+"."

Sheets("工藝改造數據").Select

myRange="A"+Trim(Str(insertWellIndex+i))

Range(myRange).Value=currDay

2.3.3 利用射孔記錄,創建壓裂記錄

復制有效射孔記錄區塊,將其粘貼到與它相鄰的下一行區塊,通過Range對象的value屬性修改部分單元格的值,生成壓裂記錄數據。

3 應用效果

經過VBA的編程處理,將多個Excel中的射孔數據提取并整理在了一個Excel中,使需要的數據更規范整齊。

4 結束語

在石油地質項目中會產生成百上千條井的信息,而用軟件進行油藏成圖時,大部分的數據是無效的,在此,有用信息的快速提取顯得至關重要。通過Excel VBA編程,可以將幾百上千個Excel中的射孔數據批量提取出指定的關鍵數據,并將其整理成需要的格式,不但簡單方便,而且極大的提高了效率,節約了時間還提高了數據質量。但需要明確的是,Excel VBA也存在運行速度相對較慢等問題,因此,在實際處理問題時應具體分析是否適合使用這一方法,再做決斷。

參考文獻(References):

[1] 張佩英.自編函數處理Excel中復雜數據[J].實驗室研究與探索,2007.8:150-152

[2] 陳紅柳.Excel 2000中VBA的應用實例[J].職業教育研究,2005.2:120-121

[3] Dydowicz,p.(2013). VBA as a tool for improving outputs from mass data processing,3.1313-1322

[4] Zhang D, Cheng Q, Agterberg F, et al. An improved solution of local window parameters setting for local singularity analysis based on Excel VBA batch processing technology[J]. Computers&Geosciences;,2016.88(C):54-66

[5] 焦萍萍,周顯春.EXCEL中的VBA程序設計[J].電腦知識與技術,2016.11(12):63-64

[6] 李曉玫,楊小平.Excel中的VBA程序設計[J].四川師范大學學報(自然科學版),2004.4:423-426

主站蜘蛛池模板: 国产无吗一区二区三区在线欢| 污污网站在线观看| 日韩精品亚洲一区中文字幕| 熟女成人国产精品视频| 亚洲精品无码久久毛片波多野吉| 538国产视频| 国产成人高清精品免费| 女人18毛片水真多国产| 国产色网站| 9cao视频精品| 一级毛片在线免费看| 婷婷亚洲最大| 亚欧乱色视频网站大全| 久久毛片网| …亚洲 欧洲 另类 春色| 亚洲成av人无码综合在线观看| 亚洲天堂伊人| 国产精品 欧美激情 在线播放| 免费国产在线精品一区| 福利视频久久| 视频二区国产精品职场同事| 欧美一级专区免费大片| 国产精品主播| 精品福利网| 日韩经典精品无码一区二区| 国产成人精品无码一区二| 国产经典在线观看一区| 亚洲AV成人一区二区三区AV| 亚洲中文制服丝袜欧美精品| 欧美精品三级在线| 亚洲中文制服丝袜欧美精品| 亚洲国产天堂在线观看| 爆操波多野结衣| 亚洲h视频在线| 在线无码九区| 精品视频第一页| 欧美在线综合视频| 成人一级黄色毛片| 精品国产成人三级在线观看| 久久精品视频一| 免费在线视频a| 一区二区欧美日韩高清免费| 国产精品香蕉| 精品福利国产| 亚瑟天堂久久一区二区影院| 日本少妇又色又爽又高潮| 黄色网址手机国内免费在线观看| 2021国产乱人伦在线播放| 亚洲第一视频网站| 精品在线免费播放| 国产流白浆视频| 国产美女无遮挡免费视频网站| 性欧美精品xxxx| 国模视频一区二区| 在线观看亚洲精品福利片| 中文字幕亚洲电影| 亚洲香蕉伊综合在人在线| 91青青在线视频| 刘亦菲一区二区在线观看| 亚洲国产成人精品一二区| 中文字幕在线日本| 欧美三级日韩三级| 精品欧美视频| 国产精品亚洲一区二区三区在线观看 | 久久国产av麻豆| 亚洲男人的天堂网| 亚洲综合18p| 国产亚洲视频免费播放| 久久精品国产国语对白| 女同国产精品一区二区| 久久综合色视频| 美女裸体18禁网站| 精品国产网| 欧美激情综合一区二区| 国产在线观看成人91| 国产精品大白天新婚身材| 国产极品美女在线播放| www亚洲天堂| 国产成人精品优优av| 九色综合伊人久久富二代| 成人午夜免费观看| 国产91全国探花系列在线播放|