2016-12-09 1 views
0

Как проверить мои два столбца (столбец I и столбец H), чтобы увидеть, если в столбце I, если какие-либо ячейки не пусты, а столбец H, ячейки пустые, а затем вырезать и вставлять не пустая ячейка из столбца I в пустую ячейку в колонке H.C# Excel Вырезать/вставлять ячейки условно

для более наглядного примера:

enter image description here

Моей идеи до сих пор было так:

xl.Range ColH = sourceSheet.UsedRange; 
     xl.Range ColI = sourceSheet.UsedRange; 
     string occupiedCellsH; 
     string emptyCellsI; 
     occupiedCellsH = ColH.ToString(); 
     emptyCellsI = ColI.ToString(); 

     if (string.IsNullOrEmpty(emptyCellsI) && occupiedCellsH != null) 
     { 
      ColH.Cells.Copy(ColI);; 
     } 

ответ

2

Это будет делать трюк:

 const int hCol = 8; 
     const int iCol = 9; 

     //start at 1 as there are column headings 
     for (int i = 1; i < sourceSheet.UsedRange.Rows.Count; i++) 
     { 
      if ((sourceSheet.cells[i, hCol].value??"").ToString()!="" && 
       (sourceSheet.cells[i, iCol].value??"").ToString()=="") 
      { 
       sourceSheet.cells[i, iCol].value = sourceSheet.cells[i, hCol].value; 
       sourceSheet.cells[i, hCol].value = ""; 
      } 
     } 

Чтобы сделать наоборот, как на Ваш комментарий (если вы еще это нужно):

 const int hCol = 8; 
     const int iCol = 9; 

     //start at 1 as there are column headings 
     for (int i = 1; i < sourceSheet.UsedRange.Rows.Count; i++) 
     { 
      if ((sourceSheet.cells[i, iCol].value??"").ToString()!="" && 
       (sourceSheet.cells[i, hCol].value??"").ToString()=="") 
      { 
       sourceSheet.cells[i, hCol].value = sourceSheet.cells[i, iCol].value; 
       sourceSheet.cells[i, iCol].value = ""; 
      } 
     } 
+0

Он работал отлично, спасибо! Единственная проблема заключалась в том, что я написал ее в обратном порядке. (Под этим я подразумеваю, что резка и склеивание были инвертированы, мой плохой) Как я мог отменить действие? копировать с I на H? –

+0

Сначала я не был уверен, почему это не сработает, но потом я нашел проблему, ячейки, которые я хотел занять, на самом деле были пустыми, но с большим количеством белых пробелов. Спасибо за ваш ответ! –