从VB.Net中删除Excel列和重复值

时间:2011-07-05 10:31:28

标签: .net vb.net winforms excel

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

请帮帮我..

编辑从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个字符的第一列数据,然后输出文件应包含大写的所有详细信息

1 个答案:

答案 0 :(得分: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

如果有很多值,那么有更有效的方法可以做到这一点,但是如果你先让它工作以便你理解这一点,那么让它更快就不会太难了。