Tag: vb.net

读取vb.net中的excel文件会导致excel进程挂起

下面的代码工作正常,但似乎离开后台运行excel.exe的实例。 我如何去正确地closures这个子? Private Sub ReadExcel(ByVal childform As Fone_Builder_Delux.frmData, ByVal FileName As String) ' In progress childform.sampleloaded = False Dim xlApp As Excel.Application Dim xlWorkBook As Excel.Workbook Dim xlWorkSheet As Excel.Worksheet xlApp = New Excel.ApplicationClass xlWorkBook = xlApp.Workbooks.Open(FileName) xlWorkSheet = xlWorkBook.Worksheets(1) Dim columnrange = xlWorkSheet.Columns Dim therange = xlWorkSheet.UsedRange childform.datagridHeaders.Columns.Add("", "") ' Super imporant to add […]

Excel Interop:退出Excel应用程序实例会使testing失败?

我想封装Excel Interop的使用,使它更容易在一个可重用的库中使用。 到目前为止,我已经写了一些testing,一起运行良好,除了在每个testing之间,我强迫Excel,以便它不必处理testing文件,以便能够删除。 一旦我在每次testing之后退出应用程序实例,Excel似乎不再响应,导致Windows显示 “Excel已停止工作,正在寻找解决scheme” 信息。 此消息持续几秒钟,同时Excel正在closures,导致文件挂起发生,我的testing抛出一个exception “由于正被另一个进程使用而无法访问文件…” 信息。 否则,我的每个testing单独运行就好了! 任何线索如何解决这个问题? 我是否过度使用ApplicationClass.Quit()方法? 只有在testing完成后才退出Excel,导致为testing创build的文件不能被删除。 谢谢! =)

Vb.net:Excel工作表上的showAllData()时出现互操作exception?

我有一些filter应用于我的inputExcel表,所以我决定在vb.net中使用showAllData()方法将其删除。 MSDN参考: http : //msdn.microsoft.com/en-us/library/bb178108( v= office.12).aspx 但是它在这一行上给出了一个非常奇怪的exception: Exception from HRESULT: 0x800A03EC 我的代码: sh = myWorkBook.Sheets(2) ' sh is my sheet sh.Visible = True sh.Activate() sh.Select() sh.ShowAllData() ' Exception raised on this line 我究竟做错了什么 ? 这个例外是什么,我最近看到了这个。 但是从来不清楚哪里出了问题?

从macros调用Excel VB的AddIn

所以我想在Visual Studio中用C#编写一系列Excel中的数据input表单。 我希望能够将这些表单的整个库存储在加载项中,并且仅根据打开的Excel文档显示特定的表单。 我知道,用一些技巧,Excel的function区可以定制每个单独的文件, (例如) http://www.rondebruin.nl/win/s2/win001.htm 但我只能find从自定义function区运行macros的方法…有没有办法从macros引用C#加载macros? 如果没有,有没有办法引用它从build立一个自定义的XML插件?

使用OLEDB在文件名中使用额外点读取Excel csv文件

我有一个在文件名称点excel csv文件。 (这是行业的命名约定,所以我不能改变它。)我正在尝试使用OLEDB读取所有数据。 如果我从文件名删除点,我的命令工作。 如果没有,它说无效的对象。 如何忽略/解决文件名中的点? 文件名:ABCtesting银行Trail 2014年2月$ 18083.65.csv 我的代码: Public Function GetAllData(ByVal FileName As String) As DataTable Try Dim dt As New DataTable Using con As New OleDbConnection With {.ConnectionString = String.Format(ConnectionNoHeader, Path.GetDirectoryName(FileName))} cn.Open() Dim SQLAdapter As OleDbDataAdapter = New OleDbDataAdapter() Dim cmd As OleDbCommand = New OleDbCommand("SELECT * FROM [" + Path.GetFileName(FileName) + […]

VBA中的.NET DLL(Excel)

我花了最后2天试图获得一个基本的VB.NET DLL创build工作在VBA。 我已经读过这个景象的每一个post,但我一直得到同样的错误。 我创build了一个VB.NET类(我以pipe理员身份运行Visual Studio)。 我的课 Imports System Imports System.Collections.Generic Imports System.Text Imports System.Runtime.Interposervices Imports System.Linq Public Class TestClass Function TestMethod(ByVal input as String) Return "Hello" & input End Function End Class 我设置了“使组件可见” 我设置了“注册COM互操作” 我build立并释放dll 我打开Excel并添加对dll的引用。 一切工作到目前为止 在工作表中添加下面的代码 Public Sub test() Dim a As TestClass 'Note: Auto fills in once i start typing it in […]

COMException(0x80010108 – RPC_E_DISCONNECTED)closuresExcel.Workbook时

当我运行下面的代码,我得到下面的exception: ''# NOTE: ExcelApp is a Private main form variable Dim ReportBooks As Excel.Workbooks = ExcelApp.Workbooks Dim ReportBook As Excel.Workbook = ReportBooks.Open(localFilename) Dim ReportSheet As Excel.Worksheet = ReportBook.Sheets("Report") ''# Retreive data from sheet ReleaseCOM(ReportSheet) ReportBook.Close(True) ''# Error raised here ReleaseCOM(ReportBook) ReleaseCOM(ReportBooks) ERROR: COMException was unhandled The object invoked has disconnected from its clients. (Exception from […]

Microsoft.Office.Interop.Excel VB.NET如何禁用在工作表中selectlocking的值

我正在使用VB.Net中的Microsoft.Office.Interop.Excel库在受保护的Excel工作表上。 所有的保护设置工作正常,除了我不能设置selectlocking的单元格显示,当您使用Excel保护工作表界面,但我不明白如何设置为false使用库。 我已经尝试了保护方法中的所有不同的值,但是没有一个值会切换。 Excel保护表单菜单 下面是我用来获取我的工作表,填充一些值,然后保护工作表的代码片段。 GetWorkSheet是一个内部方法,它将返回一个WorkSheet对象,而invoiceData是一个数据表,它有被添加到电子表格中的数据。 Dim newSheet As Worksheet = getWorkSheet(newSheetName) ' Make the current Work Sheet active so that it will be accepting the data. newSheet.Activate() newSheet.Unprotect(sheetPassword) For i As Integer = 1 To invoiceData.Rows(0).ItemArray.Count newSheet.Cells(transactionalRow, i) = invoiceData.Rows(0).ItemArray(i – 1) Next 'work is done so protect it again newSheet.Protect(sheetPassword, False, True, False, […]

如何评估vb.net内的Excel公式

在我看来,我有一个相当不同的情况。 我试图为我定期使用的基于excel的程序编写自定义函数。 主要的问题是你不能重用代码的function和返回一个评估公式。 所以我有以下的想法。 我可以从excel中将参数从参数中提取出来,让vb.net把这些参数放在代码中,然后在excel中进行评估。 所以让我举个例子。 这个代码将在excel中被定义为“源代码”。 ="Width+{0}+Height+{1}"正如你所看到的,有两件事情正在进行。 #1。 我正在使整个公式成为一个string#2。 我为我的两个参数插入一些“占位符” 现在这两个参数将被放置在已定义的名称以及单元格B1(参数1) =1+1=2 (Cell can be evaluated in excel)单元格C1(参数2) =10+10=20 (Cell can be evaluated in excel) 现在这里是function发生的地方。 单元格D1 =myformulaparsingfunction(Source_Code, Argument_1, Argument_2) 在vb.net后端,我将拉入source_codestring,然后用参数parsing占位符。 所以我会得到这样的东西… ="Width+2+Height+20" 这是我遇到我的问题。 当我parsing公式它仍然是一个string。 我需要有一种方法来告诉excel来评估这个string作为公式。 如果你们中的任何一个知道如何做到这一点,或者是另一种方法来实现我正在尝试做的事情,我很乐意听取你的意见。 希望上面的内容足够清晰,可以理解我在这个代码中的位置。 提前致谢。 乔

提示用vb.net打开excel文件的保存对话框

Iam使用visual studio 2012, 我想打开“保存对话框”来select保存我的文件,而不是使用固定的path,下面的代码是我想用它的一个样本: Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Dim xlsWorkBook As Microsoft.Office.Interop.Excel.Workbook Dim xlsWorkSheet As Microsoft.Office.Interop.Excel.Worksheet Dim xls As New Microsoft.Office.Interop.Excel.Application Dim resourcesFolder = IO.Path.GetFullPath(Application.StartupPath & "\Resources\") Dim fileName = "book1.xlsx" xlsWorkBook = xls.Workbooks.Open(resourcesFolder & fileName) xlsWorkSheet = xlsWorkBook.Sheets("a") xlsWorkSheet.Cells(1, 1) = TextBox1.Text xlsWorkBook.SaveAs("C:\output\book1.xlsx") xlsWorkBook.Close() xls.Quit() End Sub 我想改变这个path“C:\ […]