gpt4 book ai didi

c# Excel 为什么要从单元格中删除与整行相关的重复项?

转载 作者:行者123 更新时间:2023-11-30 12:13:04 25 4
gpt4 key购买 nike

我进行了一些搜索,我发现的函数似乎并没有像我期望的那样工作,我是不是传递了错误的参数?

我想使用 C# 删除 Excel 电子表格中的所有重复行条目。

Range theRange = workSheet.UsedRange as Range;
theRange.RemoveDuplicates(XlYesNoGuess.xlYes);

它所做的似乎只是删除具有任何重复单元格值的行,而不是将行作为一个整体来查看。

我做错了什么?当我进入 excel 并单击数据 >> 删除重复项并选择所有列时,它会给我我想要的。执行此操作的编程方式是什么?

Removeduplicates 似乎相当快,所以我不想做任何类型的循环等。

最佳答案

你的问题困扰了我一整天,我终于弄明白了!

您需要指定要从中删除重复项的列号。

即使您已经指定了范围,您仍然需要指定列。该描述具有误导性,因为它将此声明为可选,并表示如果将其留空,将搜索整个范围以查找重复项。这不是真的。

描述更具误导性,因为它说这可以是一个对象数组。您可以指定列的唯一方法是按数字,将整数数组传递给此方法会导致运行时错误。

您传递给此方法的第二个 bool 参数按预期工作,它允许您声明列中的第一个单元格包含标题。

关于从第一列中删除重复项,以下代码对我有用:

using System.Runtime.InteropServices;
using Excel = Microsoft.Office.Interop.Excel;

namespace RemoveDupes
{
class Program
{
static void Main()
{
var excel = new Excel.Application();
var workbook = excel.Workbooks.Open(@"C:\Test\Test.xlsx");
Excel.Worksheet worksheet = workbook.Sheets[1];

var usedRange = worksheet.UsedRange;

usedRange.RemoveDuplicates(1);

workbook.Close(true);

Marshal.ReleaseComObject(excel);
}
}
}

关于c# Excel 为什么要从单元格中删除与整行相关的重复项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12316517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com