LinqToExcel:Excel 列中的不同值

2024-04-17

对于各位专家来说,这可能是一件非常简单的事情,但我对 C#4 和 INTEROP 并不熟悉。因此,我很困惑。这是我的问题。 我有一个包含重复数据的 Excel 列,我想将其修剪为仅具有唯一值。数据如下所示:

ColA    ColB
10      Adam
12      Jane
14      Adam
18      Adam
20      Eve

所以,最后我只想要 ColaB 的唯一名称:

Adam
Jane
Eve

我知道我可以通过将所有这些值放入列表中然后向其中添加 Distinct 功能来做到这一点。但我想我做错了什么。无论如何,这是我的程序:

Application XLApp = new Microsoft.Office.Interop.Excel.Application();
var XLBook = XLApp.Workbooks.Open(@"c:\temp\Test.xls", ReadOnly: false);
// Grab the 1st sheet
var XLSheet = (Microsoft.Office.Interop.Excel.Worksheet)XLBook.Worksheets.get_Item(1);

XLApp.Visible = true;
// I think I need help with the following lines
IEnumerable<string> myCol = XLApp.Range["B2", XLApp.Range["B2"].End[XlDirection.xlDown]].Select();
myCol.ToList().Distinct();

XLBook.Close(false, System.Reflection.Missing.Value, System.Reflection.Missing.Value);
((_Application)XLApp).Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(XLApp);

我该如何使用 C#4 对 Excel 执行此操作?

提前致谢。


您可以使用LinqToExcel http://code.google.com/p/linqtoexcel/轻松获取列中的不同值

var excel = new ExcelQueryFactory("worksheetFileName");
var distinctNames = (from row in excel.WorkSheet()
                     select row["ColB"]).Distinct()

EDIT:

To use Distinct在 LinqToExcel 中,您必须使用与行数据对应的类。

public class WorksheetRow
{
    public string ColA { get; set; }
    public string ColB { get; set; }
}

var excel = new ExcelQueryFactory("worksheetFileName");
var distinctNames = (from row in excel.WorkSheet<WorksheetRow>()
                     select row.ColB).Distinct()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LinqToExcel:Excel 列中的不同值 的相关文章

随机推荐

  • Collections.sort() 抛出 Comparison 方法违反了其一般契约!例外

    我正在尝试对 List 对象进行排序 但抛出了此异常 仅适用于大型列表 排序代码 List
  • 当VBA中的某些单元格是某个数字时,如何让工作表不打印(while循环)

    我创建了一个脚本 该脚本从 SAP 获取信息并将其导出到 Excel 中 每当运行该宏时 每次返回的行数都不同 i e 第1次 4行第二次 12行等 将它们填充到表中后 我使用强大的查询编辑器读取该文件并创建一个非常简单的 ETL 函数 在
  • 从 Storyboard 转到 XIB

    我有一个故事板视图控制器 它是我的应用程序中的第一个屏幕 该应用程序的其余部分是使用 xib 设计的 我想从故事板 VC 中的按钮转到 XIB 文件 我知道如何从 xib 到故事板执行此操作 但是这个怎么样 提前致谢 从 xib 到故事板
  • 初始化顺序问题

    给出代码示例 class B Some contents class C private B b class A private B b C c 类 C 有一个对 b 的引用 因此需要用它来初始化 类 A 包含 B 的实例和 C 的实例 我
  • Facebook javascript API 中的分页是如何工作的?

    我正在尝试使用 javascript sdk 恢复我的 Facebook 新闻源中上周的帖子 我能够获得第一页 但随后 我不知道如何继续迭代其他页面 我用下面的代码尝试过 loadPosts bind click function FB a
  • undefined 不是一个函数(评估属性[typeof Symbol === "function"?Symbol.iterator:"@@iterator"]()') React Native

    以前运行良好 但在更新一些项目依赖项后突然出现此错误 它来自渲染的组件slate js对象 我不是渲染编辑器而是渲染文本 我读到这个错误可以通过更新来解决babel preset react native 但我的已经是最新的了 我也导入过b
  • 如何在 Mac OS X 上以 root 身份运行脚本? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我应该在 Mac OS X 终端上输入什么才能以 root 身份运行脚本 与任何基于 UNIX 的环境一样 您可以使用sudo http xkcd c
  • SVG 渐变颜色

    Hi I m working with SVG here I trying to add the gradient to SVG like this 白色和灰色渐变 但我无法实现所需的输出 谁能指出我正确的方向
  • 如何在引导日期选择器中突出显示特定日期?

    我正在使用引导日期选择器 我需要突出显示一些随机日期 例如 我需要突出显示 1 3 8 20 21 16 26 30 等日期 您能告诉我如何在引导日期选择器中突出显示这些随机日期吗 根据 Amphetamachine 的建议在 bootst
  • 信任 Google API 响应对象和所有权

    我已经在我的网络应用程序中成功实现了 Google Login 使用适用于客户端 Web 应用程序的 OAuth 2 0 https developers google com identity protocols OAuth2UserAg
  • 如何在 Python 中运行 .exe 文件

    我正在尝试在 python2 7 中运行 exe 文件 我已经尽了一切努力来搜索它 这是我尝试过的一些代码 subprocess Popen r C Programs Files Internet Explorer iexplore exe
  • 调试时 VS2012 的 VSIX 扩展未运行

    我在 Visual Studio 2012 中创建了一个新的 VSIX 扩展项目 并编写了一个 MEF 分类器 作为测试 该分类器应该简单地突出显示 mylang文件 以下是我的 NET 4 5 代码的相关部分 internal stati
  • 如何通过 powershell 或 C# 使用本地 IP 远程更新 azure webapp 防火墙

    如何使用本地 PC IP 地址远程更新我的 azure webapp 防火墙 以便通过 powershell 或 C 进行管理 我已经查看了文档 但我只能从实际服务器本身找到如何操作 而不能远程操作 我可以让 Visual Studio 弹
  • 可绘制资源中带有形状的文本

    我可以在可绘制资源中创建文本形状吗 我在谷歌上搜索了很多 但什么也没找到 这是我的绘图文件
  • 退出和中止有什么区别?

    The abort http ruby doc org core 2 1 1 Kernel html method i abort文件说abort will 通过调用 Kernel exit false 立即有效地终止执行 立即 到底是什么
  • 如何根据内容调整QTableView的高度?

    在我的布局中 动态生成的 QTableView 似乎已调整大小以仅显示一行 我想让表视图的容器有一个滚动条 而不是单个表视图 它应该显示完整的内容 显然 Qt 没有为此内置任何东西 您需要手动计算和设置大小 这就是我垂直调整大小的方法 Qt
  • XMLSerializer.Serialize 上的 .NET OutOfMemoryException

    我有一个网站 每当它到达我的代码中的以下位置时 就会抛出 OutOfMemoryException XmlSerializer xs new XmlSerializer t xoverrides 看到只有在网络服务器上时才会发生这种情况 我
  • 使用 Thrift 通过共享内存进行 IPC 通信

    我找不到关于如何使用 apache thrift 通过共享内存进行 ipc 通信的足够示例 我的目标是在 thrift 的帮助下序列化现有的类 然后通过共享内存发送到另一个进程 在该进程中我在 thrift 的帮助下再次反序列化它 现在我正
  • 如何循环访问 IP 地址范围?

    我想在 IP 地址范围上执行一组网络任务 一旦范围大于 C 类网络 我就无法枚举该范围内的所有主机 我希望能够使用网络掩码迭代网络的所有主机255 255 240 0 From 192 168 0 100 To 192 168 10 100
  • LinqToExcel:Excel 列中的不同值

    对于各位专家来说 这可能是一件非常简单的事情 但我对 C 4 和 INTEROP 并不熟悉 因此 我很困惑 这是我的问题 我有一个包含重复数据的 Excel 列 我想将其修剪为仅具有唯一值 数据如下所示 ColA ColB 10 Adam