0
Textbox1.Text >> "A1"

我的目标是打开一个现有的 excel 电子表格,将特定字符串插入电子表格上的特定单元格,然后将其打印出来。作为额外的奖励,如果有人知道我如何编写程序以打开此电子表格供用户查看,那也将非常有用。

谢谢!

4

3 回答 3

0

使用 Excel 自动化很容易,但建议仅用于用户参与和用户交互的情况,因为自动化 Excel 仍然可以显示需要用户干预的各种模式对话框。如果应用程序不应该是用户交互的,最​​好使用类似Open XML SDK for Office或第三方产品(例如Aspose.Cells,我自己使用)之类的东西,它会运行得更快并且不容易停下来引起用户的注意。在服务器/用户无人参与的应用程序中,Microsoft 特别建议不要执行 Office 应用程序的自动化,并且不支持 Office 应用程序自动化,并且在这些情况下可能会违反许可要求。

于 2013-07-24T00:12:37.477 回答
0

这可能看起来有点粗略,但......它可能会帮助你。您可以简单地创建一个扩展名为 .XLS 的文本文件。您可以将文本放入文件中,其中制表符在 Excel 中被识别为列分隔符,回车在 Excel 中被识别为行分隔符

ColA Row1   ColB Row1   ColC Row1
ColA Row2   ColB Row2   ColC Row2

在上面的示例中,将部分之间的空格替换为制表符,使用 .XLS 扩展名将其保存到硬盘驱动器,然后在 Excel 中打开,您将在单独的列和行中看到文本

于 2013-07-23T19:30:53.443 回答
0

您可以使用 OLEDB 连接来更新电子表格。然后您可以执行以下操作来打印它:

    Dim strFile As String = "c:\test.xls"
    Dim objProcess As New System.Diagnostics.ProcessStartInfo


    With objProcess
        .FileName = strFile
        .WindowStyle = ProcessWindowStyle.Hidden
        .Verb = "print"

        .CreateNoWindow = True
        .UseShellExecute = True
    End With
    Try
        System.Diagnostics.Process.Start(objProcess)
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try

打印后,您可以简单System.Diagnostics.Process.Start("c:\test.xls")地打开工作簿供用户查看。

或者,您可以使用 OLEDB 连接来更新电子表格。然后你可以通过互操作打开它,像这样。您也可以同时将字符串输入到工作簿中(不使用 OLEDB 连接)。添加对 Microsoft.Office.Interop.Excel 的引用。

Imports Microsoft.Office.Interop
Public Class MyExcel
   Private Sub StartExcel()
     Dim xlApp As New Excel.Application
     xlApp.Visible = True
     Dim xlBook As Excel.Workbook = xlApp.Workbooks.Open("c:\test.xlsx")
     Dim xlSheet As Excel.Worksheet = xlBook.ActiveSheet
     Dim xlSheet2 As Excel.Worksheet = xlBook.Worksheets("Sheet 3")
     xlSheet2.Range("B5").Value2 = "my new string"
     xlSheet.Range("A1").Value2 = "my string"
     xlBook.PrintPreview()
   End Sub
End Class
于 2013-07-23T17:20:30.293 回答