Tag: .net

尝试从VBA调用.NET函数 – 在VBA中使用RUN

我有一个.Net类库,并做了所有必要的事情,包括它在Excel中。 (以COM可见的方式表示,用于com-interop和regasm'ing dll)我使用excel 2007.在excel插件中,我看到我的'TestLib.Functions'被选中。 我能够访问我的VBA代码中的函数,如下所示: Set lib = New TestLib.Functions returnVal = lib.Add(5); 这工作正常。 对于其他代码审查的原因,我也看到了使用RUN方法访问的另一个库中的一些函数: Run("avSomeFunction", paramvalue) 现在,在VBA编辑器中,如果我尝试以相同的方式访问“添加”function, Run("Add", 5) 我收到一个错误,说'无法find名称添加macros'。 是否有必要再次在VB的editot-tools-references中再次添加tlb作为参考,除了为.net dll做regasm? 有人可以让我知道这里有什么问题。 ps:出于某种非常疯狂的原因,我突然有了这个工作,但之后又一次没有工作。 很奇怪:(

VSTO Excel加载项部署问题使用Click Once和Mage

我有一个VSTO Excel加载项,可以在Visual Studio 2008中成功发布。我想将发布移动到CruiseControl构build服务器上的NANT任务,以便获得unit testing等的所有好处。 我正在通过本地构build和部署到我的机器上的共享来testing部署,所以我知道在NANT中使用的命令。 我可以使用Mage命令行工具成功构build部署和应用程序清单。 当我从networking共享运行应用程序时,安装失败,并提示消息:“ Windows窗体应用程序不支持customHostSpecified属性 ” 我已经查看了各种信息来源,其中大部分build议使用最新版本的法师工具(我使用Windows SDK 7.0a中的法师工具),并确保处理器目标是MSIL。 我也跟着各种MSDN页面和演练,但似乎无法摆脱这个问题。 所以总结一下: 如果从Visual Studio 2008发布,我可以通过ClickOnce进行部署 我可以build立清单,并使用法师CMD工具签署他们 我不能从我的networking共享安装,我得到“ Windows窗体应用程序不支持customHostSpecified属性 ”错误。 我针对Excel 2007和使用.NET Framework 3.5。 该应用程序从networking共享部署,而不是IIS。

图表validation

我要做一个项目,将数据和图表转换成Excel文件。 但是我在这里发现了一些问题, 我已经做了一个项目来转换图表,用这个脚本 公共静态无效GetChart(stringstrFilePath,stringstrDestPath){ xl.Application xlApp; xl.Workbook xlWorkBook; xl.Worksheet xlWorkSheet; object misValue = System.Reflection.Missing.Value; xlApp = new xl.ApplicationClass(); xlWorkBook = xlApp.Workbooks.Open(strFilePath, 0, true, 5, “”,“”,true,Microsoft.Office.Interop.Excel.XlPlatform.xlWindows,“\ t”,false,false,0,true,1,0); xlWorkSheet =(xl.Worksheet)xlWorkBook.Worksheets.get_Item(1); xl.ChartObjects xlCharts =(xl.ChartObjects)xlWorkSheet.ChartObjects(Type.Missing); xl.ChartObject myChart =(xl.ChartObject)xlCharts.Item(1); xl.Chart chartPage = myChart.Chart; 然后用这个脚本把它转换成图像 GetChart(@“”+ textBox1.Text +“”,@“d:\”+ textBox2.Text +“.jpeg”); label5.Text = @“D:\”+ textBox2.Text +“.jpeg”; pictureBox1.Image = new Bitmap(@"" + label5.Text […]

从Excel打印到PDF格式的书签

我正在以编程方式在Excel工作簿中创build许多工作表。 当我完成后,我需要将工作簿打印到PDF。 这正在使用这个代码 oBook.PrintOut(Type.Missing, Type.Missing, Type.Missing, Type.Missing, "Adobe PDF", true, Type.Missing, filename) Process.Start(filename) 所以,我使用Adobe PDF打印机实例打印到postscript,然后打开.ps文件来提取它。 一切工作正常。 但是,我需要做的是将书签添加到PDF文件。 我只需要将每张表的名称作为书签。 我可以使用上述方法吗? 我知道这可以使用Excel中的“创buildPDF”选项来完成,该选项似乎使用了PDFMaker。 有没有办法从.NET调用? 感谢您的帮助,我真的很感激。 谢谢,尼克

使用.NET从另一个进程访问实时Excel数据/属性的最快方法

实时(未保存的)Excel数据和C#对象之间的接口的最快捷的方法就是如何有效地访问Excel数据。 根据这个答案,两个build议是使用Excel-Dna或Add-in Express。 我相信Excel-Dna和Add-in Express都需要以Excel加载项运行。 在我的情况下,业务逻辑运行在另一个进程中,并创build一个Excel实例( New Excel.Application() )。 Excel中的更改需要更新内部对象。 从Excel中获取单元格值可以通过DirectCast(Range.Value, Object(,))高效地完成。 不幸的是,这是不可能的其他属性,如Range.Text或Range.NumberFormat 。 正如所料,遍历单元格非常缓慢。 您认为从主进程访问Excel数据的最有效方法是什么? 我想到的一个想法是添加一个加载到Excel(使用说Excel-Dna)聚合数据,然后将其张贴到主应用程序。 由于我没有太多的跨AppDomain编组经验,如果这是一个可行的方法或另一个应该是首选,我将不胜感激评估。

如何确保使用VSTO 4打开哪个版本的Excel?

我是一个使用VSTO的Excel工作表,如下所示: Application app = new Application(); var wBook = app.Workbooks.Add(); var wSheet = (wBook.Worksheets[1] as Worksheet); /* Population algorithm */ app.Visible=true; 工作表被创build,一切都很好,除了我在工作环境(Excel 2003和Excel 2010)中安装了两个版本的Excel。 上个星期,当我第一次创build代码时,Excel 2010显示出来了。 但是,本周,Excel 2003打开了。 我的项目引用Microsoft.Office.Interop.Excel与最新版本( C:\Program Files (x86)\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\PIA\Office14\Microsoft.Office.Interop.Excel.dll ,版本14)。 这在某种程度上是Windows中的首选项,还是我创build应用程序实例时必须指定的东西?

select/插入/更新/删除Excel 2007文件和C#

我正在使用DataGridView ,我将我的Excel文件绑定到DataGridView 。 我能够从Excel文件读取以及使用DataGridView插入到该文件。 但我无法删除和更新该文件。 这是一个错误,说: 这个ISAM不支持删除链接表中的数据。 是否有任何其他方法使用DataGridView在Excel文件中执行这些操作。 或者简单地说,我怎样才能在C#中使用DataGridView在Excel文件中删除和更新logging。

将DataTable导出到Excel表格 – 创build时获取空行

我有一个由6个表组成的数据集。 当我把它们放到我的方法下面,它在第一张桌子上完美地工作。 但是,我注意到在第二个表中的第二行(在列下)是空的,然后显示表数据。 这只是表3中的相同,这次只有两行是空白的。 随着每个剩余表格的build立,这增加了空行。 我证实,表本身没有这些空行。 我希望在这里有人会这样看待这个代码,让我知道这是什么原因。 public Excel.Application PrepareForExport(System.Data.DataSet ds) { object missing = System.Reflection.Missing.Value; Excel.Application excel = new Excel.Application(); Excel.Workbook workbook = excel.Workbooks.Add(missing); int k = 0; int tableCount = 6; for (int j = 0; j < tableCount; j++) { Excel.Worksheet newWorksheet; newWorksheet = (Excel.Worksheet)excel.Worksheets.Add(missing, missing, missing, missing); System.Data.DataTable dt = new […]

如何使一个用户表单发布系统graphics(.net)

我使用的是VS2008,我已经设法将我自学(严重)的代码和我在互联网上find的东西放在一起,现在我已经遇到了困难。 我看了一下,我不知道如何解决这个问题。 当有人按下一个button时,我会向两个模块发送数据,第一个将数据网格放置在数据网格的顶部并旋转图像,同时等待第二个线程将数据保存到Excel。 我得到的问题是当它运行代码时,到达'Me.PictureBox4.Image = DirectCast(BM_out.Clone(),System.Drawing.Image)'这一行'错误信息'在别处使用的对象'。 Public MoveByCalc As Double Public ReturnStack As New System.Collections.Generic.Stack(Of Integer) Public BM_In As New Bitmap(My.Resources.Fan) Public Wid As Single = BM_In.Width Public Hgt As Single = BM_In.Height Public Cx As Single = Wid / 2 Public Cy As Single = Hgt / 2 Public TimeElapsed As Single = 1 […]

如何更改PowerPivot工作簿中数据馈送的path?

这是场景。 我正在构build需要在SharePoint 2010网站上发布的PowerPivot报告。 报告需要每晚刷新底层数据 – 所有数据都来自SharePoint列表。 我已经创build了我需要的数据源文件并将它们发布到可信的文档库中。 我已经创build了我需要的工作簿并将它们发布到可信的文档库。 当我准备将我的更新解决scheme从我的开发工具部署到qa工作室时,我必须更改数据源的path以反映新的服务器名称。 有人知道如何编程?