Textbox1.Text >> "A1"
我的目标是打开一个现有的 excel 电子表格,将特定字符串插入电子表格上的特定单元格,然后将其打印出来。作为额外的奖励,如果有人知道我如何编写程序以打开此电子表格供用户查看,那也将非常有用。
谢谢!
使用 Excel 自动化很容易,但建议仅用于用户参与和用户交互的情况,因为自动化 Excel 仍然可以显示需要用户干预的各种模式对话框。如果应用程序不应该是用户交互的,最好使用类似Open XML SDK for Office或第三方产品(例如Aspose.Cells,我自己使用)之类的东西,它会运行得更快并且不容易停下来引起用户的注意。在服务器/用户无人参与的应用程序中,Microsoft 特别建议不要执行 Office 应用程序的自动化,并且不支持 Office 应用程序自动化,并且在这些情况下可能会违反许可要求。
这可能看起来有点粗略,但......它可能会帮助你。您可以简单地创建一个扩展名为 .XLS 的文本文件。您可以将文本放入文件中,其中制表符在 Excel 中被识别为列分隔符,回车在 Excel 中被识别为行分隔符
ColA Row1 ColB Row1 ColC Row1
ColA Row2 ColB Row2 ColC Row2
在上面的示例中,将部分之间的空格替换为制表符,使用 .XLS 扩展名将其保存到硬盘驱动器,然后在 Excel 中打开,您将在单独的列和行中看到文本
您可以使用 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