不知道如何做到这一点,我有一张Excel表格可以导入2到2的电子邮件 - 但有时它只导入1封电子邮件,所以我希望删除这些行 -
1 @ EMAIL1
1 @ EMAIL1
2 @ EMAIL2
2 @ EMAIL2
3 @ email3 - 需要删除,因为它只有1个条目
4 @ EMAIL4
4 @ email4
它从CSV导入 - 我需要它删除该行,如果它不匹配,因为应该导入2个相同的电子邮件地址 - 所以
if A2=A1 it's good
if A2 doesn't = A1 Delete row A1
if A4=A3 it's good
if A4 doesn't = A3 Delete row A3
if A6=A5 it's good
if A6 doesn't = A5 Delete row A5
答案 0 :(得分:1)
是的,您可以使用类似Apache POI-HSSF的内容以编程方式从Excel中的单元格中删除这些值。它允许您使用Java读取和修改Excel工作表。看看Usermodel API听起来就像你在寻找什么。
您还可以查看JExcel Here
答案 1 :(得分:1)
如果我理解这个问题,在VBA中非常简单。您只想删除未使用相同电子邮件地址的行,对吧?
a = 1
Do
b = a + 1
If Cells(a, 1).Value <> Cells(b, 1).Value Then
Rows(a).Delete
Else
a = a + 2
End If
Loop Until a > Sheets(1).Rows.Count
我承认,这不是最优雅,最通用的解决方案,但又快捷方便。
答案 2 :(得分:0)
假设数据是A列
Sub Deletes()
Dim lastrow As Integer
lastrow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
Range("a1").Select
For i = 1 To lastrow
If ActiveCell.Offset(1, 0).Value <> ActiveCell.Value Then
ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(2, 0).Select
Next
End Sub
测试并正常工作。