【问题标题】:Open a .txt file in Excel from VB.NET从 VB.NET 在 Excel 中打开一个 .txt 文件
【发布时间】:2013-10-10 20:10:38
【问题描述】:

如何在 Excel 中从 VB.NET 代码打开制表符分隔的 .txt 文件?

这个问题已经在很多论坛上问过了,但我在任何地方都找不到真正解决这个问题的答案。

Dim fileName As String = "file.txt"
Dim filePath As String = System.Reflection.Assembly.GetExecutingAssembly().Location
Dim fullFilePath As String = filePath.Substring(0, filePath.LastIndexOf("\"c)) & "\" & fileName

Public Sub OpenFileInExcel()

    Process.Start("excel.exe", fullFilePath)

End Sub

【问题讨论】:

  • 随便找个例子,逐行读取文本文件,然后用tab作为分隔符的split函数。
  • 我知道如何在vb程序中打开和阅读。我想在 Excel 中打开文件。
  • 我知道我可以打开 Excel,打开 .txt 文件,选择制表符分隔,然后单击完成。但是我不希望用户这样做,我希望vb程序自动打开它。

标签: vb.net excel tabs delimited


【解决方案1】:

只需使用 Process.Start() 并将“excel.exe”作为第一个参数,并将文件名作为第二个参数:

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim TabDelimitedFileName As String = "C:\Users\Mike\Documents\somefile.txt"
    If System.IO.File.Exists(TabDelimitedFileName) Then
        Process.Start("excel.exe", Chr(34) & TabDelimitedFileName & Chr(34))
    Else
        MessageBox.Show(TabDelimitedFileName, "File Not Found")
    End If
End Sub

【讨论】:

  • 这不起作用。我提供了我的文本文件的完整文件路径和名称作为第二个参数,但是当 Excel 打开时,我收到错误“对不起,我们找不到 C:users\UserName\Documents\Visual.xlsx。它有可能被移动了吗? ,重命名,还是删除?”为什么 Excel 会尝试在与我指定的位置不同的位置查找合成文件?
  • 我能看到的唯一不同之处是您的文件位于文档文件夹中。这有关系吗,如果有,我如何打开不在文档文件夹中的文件?我明确指定了正确的路径,但 Excel 仍然在错误的位置查找。
  • 看看上面更新的代码会发生什么。在将其与 Process.Start() 一起使用之前,我添加了对该文件的检查并将其括在引号中。
  • 成功了,谢谢。文件名已经是一个字符串,但显然 Excel 也需要在实际变量周围加上引号。您知道是否有任何方法可以在打开时使列宽自动调整?
  • 我不知道仅使用 Process.Start() 的任何方法,抱歉。如果你真的通过 COM 自动化创建了一个 Excel 实例,我相信它可以做到,但我个人不知道如何做到这一点。
【解决方案2】:

您可以使用 Excel COM 对象打开文件并自动调整列:

   Dim X As New Microsoft.Office.Interop.Excel.Application()
            X.Workbooks.Open(FileNm)
            Dim W As Microsoft.Office.Interop.Excel.Worksheet = X.ActiveSheet
            Dim R As Microsoft.Office.Interop.Excel.Range = W.Range(W.Cells(1, 1), W.Cells(65000, 250))
            R.Columns.AutoFit()
            X.Visible = True

【讨论】:

    猜你喜欢
    • 2013-09-30
    • 1970-01-01
    • 2013-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-08
    • 1970-01-01
    • 2021-09-23
    相关资源
    最近更新 更多