我有一个包含两列的Excel文件。同样在Windows窗体中,我有3个文本框和一个按钮。 j =行 k =列 我想做的是 当我按下按钮时,如果我的textbox1.text =(j,k),则textbox2.text =(j,k + 1)和textbox3.text =(j + 1,k)。 我是通过互操作实现的,
Imports Excel = Microsoft.Office.Interop.Excel
Imports System.Runtime.InteropServices
Public Class Form1
Dim arrayData(,) As String
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
Dim xl As Excel.Application = New Excel.Application()
Dim workbook As Excel.Workbook = xl.Workbooks.Open("C:\Users\tr100420\Documents\Visual Studio 2010\Projects\ExcelFunction\DB.xlsx")
Dim sheet As Excel.Worksheet = workbook.Sheets(1)
Dim Obj
Dim dataRange As Excel.Range = sheet.Range("A1", "C500")
Dim empNames As Excel.Range = sheet.Range("C1", "C5")
ReDim arrayData(dataRange.Rows.Count, dataRange.Columns.Count)
Dim j, k As Integer
For j = 1 To dataRange.Rows.Count
For k = 1 To dataRange.Columns.Count
arrayData(j - 1, k - 1) = dataRange.Cells(j, k).Value
If TextBox1.Text = Convert.ToString(dataRange.Cells(j, k).Value2) Then
TextBox2.Text = dataRange.Cells(j, k + 1).Value
TextBox3.Text = dataRange.Cells(j + 1, k).Value
End If
Next k
Next j
workbook.Close() : xl.Quit()
System.Runtime.InteropServices.Marshal.ReleaseComObject(xl) : xl = Nothing
System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook) : workbook = Nothing
System.Runtime.InteropServices.Marshal.ReleaseComObject(sheet) : sheet = Nothing
但是这种方法工作太慢。 是否有任何使它更快的解决方案,或者如果您有另一种方法来连接和阅读excel,请与我分享... 谢谢。。