2011-07-05 96 views
-4

我想创建一个.Net应用程序来编辑一个excel文件,方法是删除一些列并保留我们需要的列,然后删除基于第一列的重复值将是序列号。它应该有一个检查,有6位在默认情况下像2563应显示为002563.从VB.Net删除Excel列和重复值

请帮助我..

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

+4

我们不会帮你编写代码给你,但我们可以*帮助你解决问题。那么你尝试了什么,你卡在哪里?你能发布你当前的代码吗? –

+0

嗨两个,我已经尝试过,并做了很好的坚持在我不得不删除我不需要的列的地方。请建议 – Techie

+0

我试图将所需的列复制到一个新的文件,然后做其余的事情。但是做不到...... :-( – Techie

回答

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

如果有很多价值观,那么有更高效的方式去做,但如果你首先得到这个工作,以便你明白这一点,那么加快它的速度并不困难。

+0

我会试试它..但只是为了确认是否有一种方法可以将一个特定的列复制到一个新的文件中 – Techie

+0

@Techie:当然,我编辑了一些更多的答案有关如何做到这一点的信息。 –

+0

我想创造一些不同的东西,不仅让我为excel文件做,而且为了说txt和csv文件。删除我不想要的所有值并删除重复项,然后在可能的情况下检查序列号最少6个字符的数据的第一列,然后输出文件应包含大写的所有详细信息 – Techie