【问题标题】:Delete Excel columns and duplicate values from VB.Net [closed]从 VB.Net 中删除 Excel 列和重复值 [关闭]
【发布时间】:2011-07-05 10:31:27
【问题描述】:

我正在尝试创建一个 .Net 应用程序来编辑 Excel 文件,方法是删除一些列并保留我们需要的列,然后根据将成为序列号的第一列删除重复值。应该有一个检查,默认情况下有 6 位数字,比如 2563 应该显示为 002563。

请帮帮我..

EDIT 复制自 OP 评论的代码:

Public Function GetAllFileContents(ByVal path As String, ByRef errorMessage As String) As IList(Of String) 
    Dim contents = New List(Of String) 
    Try 
        Dim files = Directory.GetFiles(path, "*.xls") 
        If (files.Length = 0) Then errorMessage = "Please select the files" 
        For Each file In files 
            contents.Add(System.IO.File.ReadAllText(file, Encoding.Default)) 
        Next 
    Catch ex As Exception 
        errorMessage = ex.Message 
    End Try 

    Return contents

我试图创造一些不同的东西,不仅让我为 excel 文件做这件事,还让我做 txt 和 csv 文件以及它。删除所有我不想要的值并删除重复项,然后如果可能的话,检查第一列数据,确保序列号至少应包含 6 个字符,然后输出文件应包含大写的所有详细信息

【问题讨论】:

  • 我们不会通过为您编写代码来帮助您,但我们可以帮助您解决问题。那么你尝试了什么,你在哪里卡住了?您可以发布您当前的代码吗?
  • 您好,两位,我已经尝试并且做得很好,卡在我必须删除我不需要的列的地方。请指教
  • 我试图将所需的列复制到一个新文件中,然后做剩下的事情。但做不到.. :-(
  • @Techie,如果没有看到您尝试过的代码,将很难回答。你可以在你的问题中发布它的相关部分吗?
  • @Techie,好吧,我认为你的方向不对,因为xls 文件不是文本文件。您可能必须使用Excel object model 来操作它们。

标签: .net vb.net winforms excel


【解决方案1】:

假设此代码不需要在服务器或类似服务器上运行,并且您在运行它的机器上安装了 MS Office 版本,我建议最简单的方法是使用 Excel自动化。这是一篇足以让您入门的文章:How to automate Microsoft Excel from Visual Basic .NET

如果您首先使用该代码,您应该能够弄清楚如何提取您需要的所有数据,然后您可以在内存中对其进行操作,然后根据需要将其写回。

编辑:在下面添加了更多信息:

查看该示例中的oSheet.Cells(1, 2).Value = "Last Name" 行,它将单元格设置为特定值,只需将其更改为myVariable = oSheet.Cells(1, 2).Value 之类的内容,您将获得该单元格的值。只需循环获取您感兴趣的列中所有单元格的值。然后只需查看这篇文章,了解如何将值写入文本文件:How to: Write Text to a File

如果有很多值,那么就有更有效的方法来做这件事,但是如果你先让这个工作来理解这一点,那么让它变得更快就不会太难了。

【讨论】:

  • 我会试一试.. 但只是为了确认是否有一种方法可以将特定列复制到新文件中
  • @Techie:当然,我编辑了我的答案,提供了一些关于如何做到这一点的更多信息。
  • 我试图创造一些不同的东西,不仅让我为 excel 文件做这件事,还让我做 txt 和 csv 文件以及它。删除所有我不想要的值并删除重复项,然后如果可能的话,检查第一列数据,确保序列号至少应包含 6 个字符,然后输出文件应包含大写的所有详细信息跨度>
  • @Techie:好吧,您可以创建一个应用程序来处理不同类型的文件,但是您必须使用不同的代码来读取 Excel 工作表而不是读取文本文件。但是,您可以创建 3 个类,例如 ParseXlsParseTxtParseCsv,它们都继承自同一个 Parse 接口,这样您就可以使其余代码工作而无需任何了解它是哪种类型的文件。然后,您的其余代码只需创建正确类型的解析器,获取所有值并执行所需的操作。
猜你喜欢
  • 2016-10-25
  • 2011-06-20
  • 1970-01-01
  • 1970-01-01
  • 2019-06-02
  • 2012-05-19
  • 1970-01-01
  • 2018-10-01
  • 1970-01-01
相关资源
最近更新 更多