如果使用c#

时间:2016-12-27 10:24:38

标签: c# excel

我的Excel工作簿中有2张excel表(Sheet1& Sheet2)。我想将行数据从Sheet2复制到Sheet1

条件是:

如果Sheet2复制的行没有Sheet1存在,则粘贴它,否则不要粘贴该行。

Sheet2中的第1行以外的已复制行:

Range dataWithoutFirstRow = xlAccrualSheet.Range[xlAccrualSheet.UsedRange.Cells[2, 1],
                            xlAccrualSheet.UsedRange.SpecialCells(XlCellType.xlCellTypeLastCell)];
dataWithoutFirstRow.Copy();

在Sheet1中粘贴下面使用的范围:

Range DataRange = xlAccrualWorkSheet.Cells[emptycell, 1];
DataRange.PasteSpecial(XlPasteType.xlPasteAllUsingSourceTheme);

请告诉我如何检查Sheet1中已存在的行。

等待您的回复

1 个答案:

答案 0 :(得分:0)

  

请告诉我如何检查Sheet1中已存在的行。

使用Range读取工作表中的所有数据。你已经在做一个类似的事情accrualSheet。然后,您可以使用range.Cells(i,j)range.Rows(r).Value甚至range.Rows(r).Cells(i,j)来获取每个特定行中的数据。

发生粘贴时,遍历所有粘贴的行,并为每个粘贴的行将其与workSheet中的行进行比较。您可以通过即时读取(如上所述)直接执行此操作,或者您可以从workSheet中读取所有行并将它们存储在List中,并将传入的行与该列表进行比较 - 它将以更快的速度运行。

现在,最有趣的事情之一可能就是“比较行”意味着什么。您需要比较一行中的所有单元格与另一行单元格,或者您需要比较一组特定的“列”,如“日期,时间,原因,来源,caseId”等。但是......没有人知道,你什么也没说。如果没有相关信息,那么您可能应该比较整行并假设任何单元格中的任何差异都意味着行不同。