Vb.net 使用VB8操作Excel文件
我的脚本从一个服务器中提取一些信息(文件名、日期和c),该服务器只包含(几乎)由单独的应用程序生成的相同excel文件。目标是找出谁在使用该工具以及使用频率 我需要两件事的帮助:从excel文件中提取信息,并在每次运行时将结果附加到同一个excel文件中,而不是每次创建一个新文件 这是我所拥有的Vb.net 使用VB8操作Excel文件,vb.net,vb.net-2010,Vb.net,Vb.net 2010,我的脚本从一个服务器中提取一些信息(文件名、日期和c),该服务器只包含(几乎)由单独的应用程序生成的相同excel文件。目标是找出谁在使用该工具以及使用频率 我需要两件事的帮助:从excel文件中提取信息,并在每次运行时将结果附加到同一个excel文件中,而不是每次创建一个新文件 这是我所拥有的 Imports Excel = Microsoft.Office.Interop.Excel Imports System Public Class Form1 Private Sub Form1_L
Imports Excel = Microsoft.Office.Interop.Excel Imports System Public Class Form1
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'declare excel objects
Dim xlApp As Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
Dim misValue As Object = System.Reflection.Missing.Value
Dim i As Integer = 2
'I know this is the problem area...
xlApp = New Excel.Application
xlWorkBook = xlApp.Workbooks.Add(misValue)
xlWorkSheet = xlWorkBook.Sheets("sheet1")
xlWorkSheet.Cells(1, 1) = " File Name "
xlWorkSheet.Cells(1, 2) = " Date Created "
'this should be cell B1
xlWorkSheet.Cells(1, 3) = " Requestor "
'this should be cell B21
xlWorkSheet.Cells(1, 4) = " Lead Type"
'get to directory
For Each strFolder As String In _
My.Computer.FileSystem.GetDirectories("Z:\\...")
'get file names
Dim infoReader As System.IO.FileInfo
infoReader = My.Computer.FileSystem.GetFileInfo(strFolder)
'write to excel worksheet
xlWorkSheet.Cells(i, 1) = strFolder
xlWorkSheet.Cells(i, 2) = infoReader.CreationTime
i += 1
Next
xlWorkSheet.SaveAs("C:\...")
xlWorkBook.Close()
xlApp.Quit()
releaseObject(xlApp)
releaseObject(xlWorkBook)
releaseObject(xlWorkSheet)
MsgBox("Excel file created , see file in c:\Documents")
End Sub
Private Sub releaseObject(ByVal obj As Object)
Try
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
obj = Nothing
Catch ex As Exception
obj = Nothing
Finally
GC.Collect()
End Try
End Sub
不要创建新的应用程序和工作簿,只需使用activeworkbook即可。 替换 与 使用所需的图纸名称替换图纸名称
或者,您可以使用
ActiveSheet
我已经回答了您下面的部分问题(具体来说,如何引用当前工作簿/工作表而不是制作新工作簿/工作表),但我对您的其他问题有点困惑。“这应该是B1[21]”是什么意思?您似乎在这些注释(“请求者”和“潜在客户类型”)处编写列标题?您希望这些字符串替换为B1和B21的内容吗?还是希望B1和B21的内容填充该列中的每个条目?还是别的什么?你能把问题的那一部分重新表述一下吗?很抱歉我没有说清楚。。。我想用单元格B1和B21中的数据填充这些列
'I know this is the problem area...
xlApp = New Excel.Application
xlWorkBook = xlApp.Workbooks.Add(misValue)
xlWorkSheet = xlWorkBook.Sheets("sheet1")
xlWorkBook = xlApp.ActiveWorkbook
xlWorkSheet = xlWorkBook.Sheets("sheetname")