.net 从txt中读取行数据_【VBA项目】从指定文件中读取数据并绘制图表
VBA 是一種很久遠(yuǎn)的編程語(yǔ)言,但并不過時(shí)。在滿足以下兩個(gè)條件時(shí),借助 VBA 可以極大的提升生產(chǎn)率,降低出錯(cuò)率:
- 你的電腦上不允許自主安裝軟件;
- 你需要執(zhí)行的工作中大部分的步驟都是固定且重復(fù)的。
項(xiàng)目背景
近期接到一個(gè)工作任務(wù),在運(yùn)行設(shè)備中,會(huì)定期生成數(shù)據(jù)記錄文件(txt 格式),我需要將這個(gè)文件中的 1000 個(gè)數(shù)據(jù)導(dǎo)入到 Excel 中,通過公式計(jì)算,得到需要的另外兩列數(shù)據(jù),將這兩列數(shù)據(jù)作為數(shù)據(jù)源,設(shè)置一個(gè)組合圖表(折線圖+折線圖),設(shè)置好圖表的格式,最后將圖表轉(zhuǎn)換為圖片,保存到指定位置。同時(shí)在主表中新建一行記錄本次的相關(guān)數(shù)據(jù)。
拿到手的數(shù)據(jù)如下如所示:
最終得到的圖片如下圖所示:
整個(gè)過程看起來(lái)并不復(fù)雜,一套流程操作下來(lái)大概也只需要不到 10 分鐘的時(shí)間。但是當(dāng)這個(gè)工作變成每天 100 次的話,就是一個(gè)相當(dāng)考驗(yàn)人的任務(wù)了。那么借助 VBA,可以將這個(gè)過程縮減到 10 秒鐘,看一下是如何實(shí)現(xiàn)的。
任務(wù)分解
首先對(duì)文檔數(shù)據(jù)進(jìn)行分析,它的數(shù)據(jù)內(nèi)容是變化的,但是遵循了固定的格式:
- 文檔包含1004個(gè)數(shù)據(jù),數(shù)據(jù)以“,”來(lái)進(jìn)行分割;
- 第1-1000個(gè)數(shù)據(jù)代表測(cè)量數(shù)據(jù),也是需要進(jìn)行進(jìn)一步處理的數(shù)據(jù)
- 第1001個(gè)數(shù)據(jù)代表測(cè)量序號(hào),需要手動(dòng)設(shè)置到圖標(biāo)上,同時(shí)圖片的保存文件名也需要用到;
- 第1002-1004個(gè)數(shù)據(jù)是相關(guān)的狀態(tài)型號(hào),需要記錄存檔。
然后是對(duì)數(shù)據(jù)進(jìn)行的處理:
- 新建一列B,取值為對(duì)應(yīng)記錄數(shù)據(jù)的奇偶性,(奇數(shù)為100,偶數(shù)為0);
- 再新建一列C,取值為對(duì)應(yīng)記錄數(shù)據(jù)除以4096,是實(shí)際的測(cè)量值。
以BC列為數(shù)據(jù)源,插入一個(gè)組合圖表:
- 圖表類型選擇“組合圖表”,
- 將序列1(B列)設(shè)置為“折線圖”,設(shè)置在“次坐標(biāo)軸”上;
- 將序列2(C列)設(shè)置為“折現(xiàn)圖”,設(shè)置在“主坐標(biāo)軸”上;
- 為序列2(C列)添加一條趨勢(shì)線(移動(dòng)平均、周期20);
- 修改主標(biāo)題、主/次坐標(biāo)軸標(biāo)題,主/次橫軸標(biāo)題的文字;
- 修改次坐標(biāo)軸的坐標(biāo)刻度(只保留0,100);
- 設(shè)置3條折線的顏色、寬度、透明度等,讓數(shù)據(jù)顯示更加明顯。
VBA 實(shí)現(xiàn)
根據(jù)分解的任務(wù),就可以編寫VBA程序來(lái)實(shí)現(xiàn)整個(gè)過程。
這個(gè)項(xiàng)目中,VBA程序中涉及到的知識(shí)點(diǎn)包括:
- “打開文件”對(duì)話框的調(diào)用
- 篩選指定格式文件
- 設(shè)置默認(rèn)打開路徑
- 工作簿、工作表的概念及VBA中對(duì)其進(jìn)行的操作的方法
- 文件屬性的獲取
- EXCEL中表格內(nèi)容到VBA數(shù)組的相互轉(zhuǎn)換
- VBA中的“For Next”循環(huán)結(jié)構(gòu)
- 數(shù)據(jù)類型及強(qiáng)制轉(zhuǎn)換數(shù)據(jù)類型
- 文本格式化函數(shù)Format的使用
- 詞典的創(chuàng)建和使用
- 在EXCEL中使用VBA來(lái)創(chuàng)建圖表,指定位置和大小;
- 圖表元素的添加、刪除和修改;
- 圖表屬性的設(shè)定
- 圖表轉(zhuǎn)換為圖片的方法
總結(jié)
以上是生活随笔為你收集整理的.net 从txt中读取行数据_【VBA项目】从指定文件中读取数据并绘制图表的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 它主要用于军事和特种部队
- 下一篇: python十个一行_python 如何