我懷疑一個工具,可以幫助你做到這一點,如果該工具存在我期望得到的C#代碼是非常糟糕的。 Excel的一個優勢是它允許非常靈活的編程風格;缺點是結果代碼的結構非常小,這使得人們和機器都難以遵循。最重要的是,邏輯可以採用多種形式,從Excel公式到VBA宏,這使問題複雜化。相比之下,C#傾向於用類來表達世界,它具有非常特定的職責;一個程序本質上是協調類之間傳遞的消息,以便他們可以「互相交談」並協作完成工作。
在這種情況下,最好的,我希望翻譯工具產生一些不愉快的C#程序。最後,電子表格(沒有VBA)是一組函數,它們坐落在單元格中並鏈接在一起,但沒有足夠的結構來提取有意義的具有多個功能的類/實體。
此外,我認爲重新思考這個應用程序是一個機會。一個Web應用程序可以輕鬆完成Excel無法執行的操作,反之亦然。我不是一個「一字一語」的密切翻譯,而是專注於保留應用程序的精神,但是設計它時不會過多地考慮原始的Excel應用程序。
讓Excel應用程序呈現的好處是您已經有了概念驗證。我不是試圖轉換代碼,而是簡單地追蹤所有對其他計算字段有影響的輸入點(可能使用審計),列表/圖表什麼會影響什麼(可能使用簡單的氣泡圖和箭頭圖),並試圖用簡單的英語來描述用戶試圖做什麼,以及「實體」方面發生了什麼。例如,而不是=A2*(1-A3)
,我會說「產品淨成本是其成本時間(1-折扣率)」。而不是=SUM(A5:A32)
,我會說「用戶需要他訂購的產品成本摘要,它應顯示其訂單的總成本,以便他可以對其訂單進行概覽」。如果您設法使用良好的名稱和用例來提取域名的描述,這對開發人員來說更有幫助,可以在任何您想要的平臺上編寫支持這些需求的最佳應用程序。