2015-12-15 116 views
0

當數據發送至Excel時,用戶將輸入「I」替換爲包含,評估的「EV」或輸入特定文本框中的「EX」。我在編寫代碼時很成功,但我怎樣才能將它們結合起來,在一個語句中尋找三個中的任何一個?我現有的下面的代碼行以及我正在尋找的示例在下面。將C#轉換爲Excel,將關鍵字替換爲關鍵字

worksheet.Cells[defaultRow, "H"].Replace("I", "Included"); //working 

    worksheet.Cells[defaultRow, "H"].Replace("I", "Included")("EV", "Evaluation")("EX", "Existing"); //not working 

回答

2

如果IEXEV是可以被放置在該小區唯一的內容,你可以做到以下幾點:

switch (worksheet.Cells[defaultRow,"H"].Value2.ToString()) 
{ 
    case "I": 
     worksheet.Cells[defaultRow,"H"].Value2 = "Included"; 
     break; 
    case "EV": 
     worksheet.Cells[defaultRow,"H"].Value2 = "Evaluation"; 
     break; 
    case "EX": 
     worksheet.Cells[defaultRow,"H"].Value2 = "Excluded"; 
     break; 
    default: 
     worksheet.Cells[defaultRow,"H"].Value2 = "Wrong input"; 
}  

這將防止錯誤的輸出,並提供手段來驗證輸入。
如果您使用Replace和用戶輸入"IIIIIII",那麼它將變爲:"IncludedIncludedIncludedIncludedIncluded..."

此外,如果你有超過10個選項,你會連鎖10 Replace電話?使用switch對我來說更好。

+0

Ooooh,這也適用,因爲我確實需要驗證。該字段將具有數據庫的默認價格,但用戶可以更改價格或輸入上述I,EV或EX。如果它不是這些選項或價格以外的任何東西,那麼當按下按鈕傳輸數據時,我實際上需要發出一條消息來進行更正。 – CamlCase

2

您可以使用

worksheet.Cells[defaultRow, "H"].Replace("I", "Included").Replace("EV", "Evaluation").Replace("EX", "Existing"); 

希望它能幫助。

+0

完美,,謝謝你的快速回答。 – CamlCase

+0

C#中的'string.Replace'方法允許你將這些調用鏈接在一起。這同樣適用於'worksheet.Cells.Replace'嗎?我真的很好奇。 –

+0

worksheet.Cells [,]是string和worksheet.Cells []。替換(舊的,新的)是字符串 –