c# – 将多个列添加到range.RemoveDuplicates
发布时间:2020-12-15 22:55:09 所属栏目:百科 来源:网络整理
导读:我试图通过选择所有单元格从excel表中删除重复项.所以我知道如何处理一个列.但我想用整张纸做. 这就是我尝试过的: private void RemoveDuplicateRecords() { try { var ar = new int[0]; foreach (Excel.Worksheet worksheet in bookDest.Worksheets) { if
我试图通过选择所有单元格从excel表中删除重复项.所以我知道如何处理一个列.但我想用整张纸做.
这就是我尝试过的: private void RemoveDuplicateRecords() { try { var ar = new int[0]; foreach (Excel.Worksheet worksheet in bookDest.Worksheets) { if (worksheet.AutoFilter != null) worksheet.AutoFilterMode = false; int n = worksheet.UsedRange.Columns.Count; ar = new int[n]; for (int i = 0; i < n;) { ar[i] = ++i; } object cols = new object[] { ar }; //isn't working Excel.Range range = worksheet.UsedRange; range.Select(); range.Activate(); range.RemoveDuplicates(cols,Excel.XlYesNoGuess.xlYes); //Also tried: //range.RemoveDuplicates((object)ar,Excel.XlYesNoGuess.xlYes); //but no luck } } catch(Exception e) { MessageBox.Show(e.Message); } } 我知道如果我有5列,我可以这样做:object cols = new object [] {1,2,3,4,5}; 但我不想手动完成.我想动态添加列. Excel文件可以包含任何no.of列.对此有任何帮助表示赞赏.谢谢您的帮助. 解决方法
我想这应该有效:
//To remove all the duplicate lines in the result file private void RemoveDuplicateRecords() { try { foreach (Excel.Worksheet worksheet in bookDest.Worksheets) { if (worksheet.AutoFilter != null) worksheet.AutoFilterMode = false; long n = worksheet.UsedRange.Columns.Count; Excel.Range range = worksheet.UsedRange; range.Select(); range.Activate(); range.RemoveDuplicates(BuildColAry(n),Excel.XlYesNoGuess.xlYes); } } catch(Exception e) { MessageBox.Show(e.Message); } } dynamic BuildColAry(long n) { dynamic vMyArray = new dynamic[n]; int idx; for (idx = 1; idx <= n; idx++) { vMyArray[idx - 1] = idx; } return vMyArray; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |