Excel相关:去重,POI操作EXCEL

1.EXCEL去重

Excel 如何用数组实现多个文件之间的对比去重 参考地址:https://zhidao.baidu.com/question/1116785302047857299.html?qq-pf-to=pcqq.c2c




Alt+F11 --》在宏里面插入模块,然后执行如下代码,即可在excel中打上“已存在标记”
去重代码:

    ' https://zhidao.baidu.com/question/1116785302047857299.html?qq-pf-to=pcqq.c2c   Excel 如何用数组实现多个文件之间的对比去重    看看这个

Sub 数据对比()
Dim i As Integer
Dim j As Integer
For i = 2 To 12 '表1   '从第2行开始比较到第12行结束
For j = 2 To 11 '表2   '从第2行开始比较到第11行结束

'表1与表2的数据去重
If Sheets("表1").Cells(i, 1) = Sheets("表2").Cells(j, 1) Then   '第1列作为重复标识字段
If Sheets("表1").Cells(i, 2) = Sheets("表2").Cells(j, 2) Then   '第2列作为重复标识字段
Sheets("表1").Cells(i, 8) = "已存在" '存在时进行标记            '在表1中的第8列打上“已存在”标记

'表3与表4的数据去重
If Sheets("表1").Cells(i, 1) = Sheets("表2").Cells(j, 1) Then
If Sheets("表1").Cells(i, 2) = Sheets("表2").Cells(j, 2) Then
Sheets("表1").Cells(i, 8) = "已存在" '存在时进行标记

End If
End If
Next j
Next i
End Sub

2.POI操作EXCEL工作簿

参考地址:http://poi.apache.org/components/spreadsheet/how-to.html#sxssf
总结:POI操作EXCEL工作簿的三种类型:
HSSFWorkbook是操作Excel2003以前(包括2003)的版本,扩展名为.xls,所以每个Sheet局限就是导出的行数至多为65535行,一般不会发生内存不足的情况(OOM)
XSSFWookbook是EXCEL2007以后的版本(1048576行,16384列)扩展名.xlsx,每个Sheet最多可以导出104万行,不过这样就伴随着一个OOM内存溢出的问题
SXSSFWorkbook是对XSSF的一种流式扩展,特点是采用了滑动窗口的机制,低内存占用,主要用于数据量非常大的电子表格而虚拟机堆有限的情况
用的时候建议大家将用SXSSFWorkbook

3.EXCEL筛选


参考例子:利用excel怎样筛选第8位为“8”和“6”的手机号
在Excel工作表中有一列手机号,怎样筛选出从左往右数第8位为“8”和“6”的手机号?

要在一列数值中筛选出某位置为指定数字的数据,有很多方法都可以实现。例如用高级筛选、用辅助列+公式等方法,本文介绍用自动筛选的方法。假如手机号码在A2:A100区域中,要筛选出其中第8位为“6”和“8”的手机号,方法如下。

方法一:在自动筛选中使用通配符

1.先将A列中的数值转换为文本。

以Excel 2003为例。由于在自定义自动筛选时要用到通配符(?、*),而通配符无法应用于数值,故先将A列中的手机号转换为文本。如果手机号原本就是以文本形式存储的数字,则跳过此步。

选择A列中的手机号码,在Excel 2003 中单击菜单“数据→分列”;在Excel 2007/2010中在功能区中选择“数据”选项卡,在“数据工具”组中单击“分列”。 在弹出的对话框中单击两次“下一步”,在“第3步”中选择“文本”,单击“完成”。这样就将该列数值转换成文本。

2.对A列进行自定义自动筛选。如果A1单元格没有出现筛选箭头,单击“数据→筛选→自动筛选”。单击A1单元格中的下拉箭头,选择“自定义”,弹出“自定义自动筛选方式”对话框。将第一个筛选条件设置为“等于”、“6???”,第二个筛选条件设置为“8???”,两个条件之间的关系设置为“或”,如图。单击“确定”。由于手机号都是11位,通配符“”代表任意多个字符,“?”代表单个字符,因而“6???”会筛选出第8位为“6”的号码。


方法二:用Excel 2010 自动筛选中的搜索功能

利用Excel 2010 中新增的自动筛选搜索功能,可以非常方便地进行筛选操作,且无论是文本或数值,都可以使用通配符。

1.单击A1单元格中的下拉箭头,显示筛选器选择列表。如果A1单元格没有显示筛选箭头,则选择A1单元格,在“数据”选项卡上的“排序和筛选”组中,单击“筛选”。在搜索框中输入:

*6???

然后单击“确定”。第8位为“6”的手机号会被筛选出来。

2.再次单击A1单元格中的下拉箭头,在搜索框中输入:

*8???

并勾选“将当前所选内容添加到筛选器”,单击“确定”。

posted @ 2020-04-10 10:33  朕在coding  阅读(789)  评论(0编辑  收藏  举报