其實EXCEL也是乙個很好的管理程式開發工具

2022-01-11 06:02:09 字數 2514 閱讀 8483

3  excel是外掛程式結構的程式,可以很方便的把功能整合到excel中

比如常見的金山詞霸,或是我寫過的資料匯入程式

這篇文章的位址在

4 如何用excel做介面

excel可以做介面,excel內建常用的工具箱,具備我們程式設計開發的常用控制項。

用toolbox做介面,配合vba指令碼控制演算法,也可做出符合特定行業的應用。

再談點實作方面的內容,如下圖,這是乙個計算機主機**計算程式

開啟這個excel檔案,根據需要選擇不同的配置方案,按回車鍵,系統計算出主機的**。

再來看看這個小應用是如何做出來的。

先在excel中建立如下的**對映關係

這是乙個簡化的例子,我沒有考慮太多的因素。

如上的資料,硬碟以容量來區分**,80g的價錢為160rmb,160g的價錢為220。

處理器,主機板,記憶體的**計算也是同樣的道理。

假設如下的應用情景:使用者開啟這個excel,只需要從列表中選擇硬碟,cpu,主機板,記憶體的

各個配置引數,系統就把**計算好了。

比如上面的,選擇160g硬碟,單核cpu,a2型號的主機板,2g記憶體,excel根據資料對映,計算出該配置的**為1660。

如果用程式的實現方式,我們需要開啟vs ide,新建乙個page或form,拖動幾個dropdownlist或combobox到介面上,

設定它的items集合的值,然後是設計計算方法。

如果放對映值直接硬編碼到程式中,可能的實現是這樣

string  cpu=ddlcpu.selectedvalue;    // 」單核」;

int  price=0;

if(cpu==」單核」)

price=600;

else if(cpu==」雙核」)

price=1000;

這種實現方式可行,但經不起變化,稍微更改一下**,整個程式需要重新編譯和除錯。

我們換一種方式,把價錢放到配置檔案中,比如harddisk.xml檔案是存放硬碟的**

<?xml version="1.0" encoding="utf-8" ?>

把這個檔案讀進乙個hashtable結構中,鍵是name,值是price。

每次計算就去讀取這個xml檔案,根據鍵來取值。

由於這個配置不會輕易改變,系統還考慮應該把它加入到系統快取中,提高執行效率。

也許你還注意到上面中的」小於」字。有時候衡量一件物料的**沒有這麼精確,

通常它只指定乙個範圍,超過指定的範圍**才會變化。比如化學藥水,容積在1l(公升)以內是100rmb,

1l至2l之間的**是140rmb,遇到這種情況,chemical.xml配置檔案應該這樣寫

<?xml version="1.0" encoding="utf-8" ?>

現在我需要購買1.2公升化學藥水,上面的配置檔案很清楚的說明了需要花費140rmb.

如何在程式中實個邏輯,我的做法是設計乙個結構,

struct  item

逐行掃瞄chemical.xml檔案,把它的每乙個行資料,填充到乙個item結構,放到hashtable中。

比如,現在需要計算1.2l的藥水的價錢,遍歷一下包含item集合值的hashtable,取出它的item結構

如果1.2是大於等於item的min,並且小於max的值,就取出price值,跳出迴圈。

至此,我已經解釋如何把上面的excel做的主機**計算工具轉換為我們熟悉的c#的做法。

考慮到軟體費用(excel,c#開發用vs ide)和每小時人工費用,相比之下,excel版本的計算工具,

比應用程式的成本要低很多。而兩者達到的目的都是一樣的,都可以實現這個功能。

再分析一下excel版本的主機**計算工具實現的三個細節。

大部分的操作都很簡單,講一下list的製作和公式的做法

選單 data—> validation 彈出對話方塊,選擇list, 指定source即可,如下圖

公式計算 常常會巢狀大量的if語句,如下計算硬碟價錢的公式

=if(b4=b9,c9,if(b4=b10,c10,if(b4=b11,c11,if(b4=b12,c12))))

再把用到的常量和引數隱藏起來,不讓使用者修改,也可把worksheet加密,阻止使用者修改。

最近分析的公司的excel檔案,大量的運用上面我說的技巧,介面設計的也很成熟。

我已經講清楚了它的原理,結論就是excel其實也是乙個很好的管理程式開發工具。

老闆也是乙個工種,也是一種技能

執行力強的員工是手腳的延伸 視野開闊專業的員工是大腦的延伸 老闆的技能是養活這些人 於是老闆要能夠比這些人知道賺錢的方法,看到賺錢的機會,能夠畫出大餅,做出看似不可能或不可思議的決定。因為同樣是看一篇文,其他人看的是精彩,而老闆要看到那些是可以借鑑的,那些是有問題的,那些是可以差異化的,然後根據分析...

WTL 乙個很好用的ToolTip

找到了乙個老外寫的很好用的tooltip,但是有兩個小問題,終於解決了,拿出來和大家分享下。問題1 有時候出現這樣的情況,滑鼠劃上去後立馬彈出提示,然後消失,最後又彈出一次 問題2 提示框彈出後預設只顯示5秒鐘就消失了,這樣時間太短了,提示的內容還沒看完就消失了。解決方法 問題1 m tt.setd...

乙個很好玩的命令 stty

stty命令修改終端命令列的相關設定。語法stty 選項 引數 選項 a 以容易閱讀的方式列印當前的所有配置 g 以stty可讀方式列印當前的所有配置。引數終端設定 指定終端命令列的設定選項。例項在命令列下,禁止輸出大寫的方法 stty iuclc 開啟 stty iuclc 恢復 在命令列下禁止輸...