2017-03-16 53 views
0

我想連接excel文件中的兩列並將其保存到新列。 但我想忽略連接,如果一個值是空白的。 並移至下一個單元格。條件格式/連接基於excel中的值使用c#

  Excel.Worksheet exampst = (Excel.Worksheet)Sh.get_Item("Sheet2"); 
      Excel.Range rng2 = (Excel.Range)exampst.get_Range("H1", Type.Missing); 
      rng2.EntireColumn.Insert(Microsoft.Office.Interop.Excel.XlInsertShiftDirection.xlShiftToRight,          Microsoft.Office.Interop.Excel.XlInsertFormatOrigin.xlFormatFromRightOrBelow); 
      exampst.Range["H1", Type.Missing].Value2 = "CombineID"; 
      Excel.Range rgcon2 = exampst.Range["H2"]; 
      //Excel.Range rng3 = (Excel.Range)RFCst.get_Range("G2", Type.Missing); 
      //object obj = rng3.Value2; 
      rgcon2.Formula = String.Format("=CONCATENATE(A2,G2)"); 

我的Excel表格如下所示。 A1 G1 H1 1 a 1a //this is the concatenated value. 2 //This value b as null,as G1 column has missing row value. 3 b 3b 4 c 4c 5 d 5d 6
7 e 7e 8 f 8f 9 and so on....

請幫忙。

+0

你忘了問一個問題。你的代碼有哪些具體問題? – tnw

+0

lol.i希望我的代碼如所示的那樣進行連接,但是它不會在G1列中考慮空白。因此,如果G1中存在值,則將結果連接並保存到H列中。如果不存在,則只是不連接。 –

回答

0

在連接之前,如果它們爲空或空,則需要首先檢查列A和G中單元格中的值。 你可以這樣做:

object rangeObject = activeWorksheet.Cells[3, "A"]; 
Range range = (Range)rangeObject; 
object rangeValue = range.Value2; 
string cellValue1 = rangeValue.ToString(); 

rangeObject = activeWorksheet.Cells[3, "G"]; 
range = (Range)rangeObject; 
rangeValue = range.Value2; 
string cellValue2 = rangeValue.ToString(); 

if (cellValue1 != string.Empty && cellValue2 != string.Empty) 
{ 
    //concatenate cells 
} 
相關問題