Tag: vsto

如何发布PDB文件以及Excel加载项ClickOnce安装?

我需要发布PDB文件以及我的Excel加载项的DLL。 ClickOnce允许select自定义应用程序文件,但对于Excel加载项,此button不可用。 任何想法如何解决这个问题?

Excel程序使用C#VSTO

我已经创build了C#Excel Addin项目,在该项目中,我已经添加了一个用户控件到该Excel,并在用户控件中放置一个button。 对于button,我已经写了从数据库获取数据到Excel单元(sheet1)的代码。 但这里遇到的问题是,当我点击一个新的Excel表单(应用程序)的button打开,数据从数据库中填充到新的Excel表单。 但是我想将我的数据从数据库填充到现有的Excel表格中,而不是新的Excel表格。 你能帮我吗? 我应该获得相同的Excel中的数据,而不是新的Excel表单。 在这里我的代码如下: – worksheet = workbook.Sheets["Sheet1"]; worksheet = workbook.ActiveSheet; app.Visible = true;—- **here i am getting new excel application and data is getting populated** worksheet.Name = "Export to Excel"; Excel.Range mycell = Excel.Range)worksheet.get_Range("A1:B1","A1:B1"); int CountColumn = ds.Tables[0].Columns.Count; int CountRow = ds.Tables[0].Rows.Count; int col = 0; int row = 1; […]

电子表格重新打开时,Excelbutton事件不会触发

当我添加一个button或链接到电子表格时,click事件起作用。 但是,当我保存电子表格,closures它,并重新打开事件不会触发。 AddControl(xlApp, ((TaskPaneView)this.Parent).factory, "text", "A1"); public void AddControl(Microsoft.Office.Interop.Excel.Application xlApp, Microsoft.Office.Tools.Excel.ApplicationFactory factory, string controlText, string address) { Microsoft.Office.Interop.Excel.Worksheet nativeWorksheet = xlApp.ActiveWorkbook.ActiveSheet; Microsoft.Office.Tools.Excel.Worksheet vstoWorksheet = factory.GetVstoObject(nativeWorksheet); var btn = new Microsoft.Office.Tools.Excel.Controls.Button(); btn.Name = "link1"; btn.Text = controlText; btn.Click += new EventHandler(btn_Click); vstoWorksheet.Controls.AddControl(btn, nativeWorksheet.Range[address], controlText); } void btn_Click(object sender, EventArgs e) { } 当打开WorkBook时,是否有一种简单的方法来重新连接事件? 我想我将不得不手动searchbutton和AddHandler的工作簿。 编辑:这是logging,但closures电子表格后没有提到的问题: 在运行时在应用程序级项目中添加控件到工作表

自定义标签默认

我在VSTO的function区中有一个自定义选项卡。 我第一次打开Excel工作表时,默认选项卡是“首页”。我想打开我的Excel表单时,我的自定义选项卡被打开。请告诉我如何完成此操作。

在Excel VSTO 2007中格式化为表(TableStyles),错误:一个表不能重叠另一个表

我正在做一个加载项,我试图格式化我的加载项生成的输出,使用格式作为Excel提供的表格表格样式。 您在“主页选项卡” – >“格式化为表格”button上获得的那个button。 我正在使用以下代码: SourceRange.Worksheet.ListObjects.Add(XlListObjectSourceType.xlSrcRange, SourceRange, System.Type.Missing, xlYesNo, System.Type.Missing).Name = TableName; SourceRange.Select(); SourceRange.Worksheet.ListObjects[TableName].TableStyle = TableStyleName; TableStyleName是任何样式名称,如TableStyleMedium17,如果您只是在Excel中hover一个特定的样式,你会得到它。 我的问题是,即使我将SourceRange保持为10列,直到结束的所有列都被选中,并被视为一个表。 因为这个表我在它旁边填充也被认为是生成的第一个表的一部分。因为,这两个表具有相同的列名称,Excel会自动更改所有以下生成的表中的列名称。 另外,因为我生成了2个表格之后的一个循环中的表格,所以我得到这个错误: 一个表不能与另一个表重叠。 PS:我明确提到SourceRange为: var startCell = (Range)worksheet.Cells[startRow, startCol]; var endCell = (Range)worksheet.Cells[endRow, endCol]; var SourceRange = worksheet.get_Range(startCell, endCell); 请提出一条出路。

使用加载项replaceExcel连接范围

我已经写了一个Excel加载项,有点噩梦。 客户工作簿过去是从SQL连接填充,并有负载公式设置命名表等附件我试图填充一些相同的表连接填充(使用现有的页眉和页脚)的数据从WCF服务同时保持格式和公式(即:不要破坏任何东西)。 获取数据很好。 我遇到的问题是这样的:被replace的数据可能比当前存在于指定范围内的数据更多或更less。 我似乎无法find一种方法来删除出现的行,并用我的新数据replace它们,并命名的范围调整到新的数据。 提前谢谢了。 Range range = activeWorksheet.get_Range("Name", MissingValue); range.Clear(); object[,] data = new object[result.Length, 26]; range.get_Resize(result.Length, 26); … fill data…. range.Value2 = data;

获取包括所有形状对象的Excel范围

在VSTO(C#)项目中,我想要使用UsedRange,包括形状对象(如图片和图表)。 1.是否有一种方法来获得形状对象的UsedRange? 由于找不到这样的方法,我想用这个方法来计算边缘: foreach (Excel.Shape shape in shapeObjects) { float shapeBottom = shape.Top + shape.Height; float shapeRight = shape.Left + shape.Width; if (maxBottom < shapeBottom) { maxBottom = shapeBottom; } if (maxRight < shapeRight) { maxRight = shapeRight; } } Excel.Range r = <XXX>(maxBottom, maxRight); 所以现在我有问题从maxBottom和maxRight获取范围。 2.有没有办法通过给出宽度和高度来获得一个Range对象?

检查excel 2010 bitness

是否有可能使用在kernel32.dll中定义的getBinaryType()函数来获取office 2010 bitness。 [DllImport("kernel32.dll")] static extern bool GetBinaryType(string lpApplicationName, out uint lpBinaryType); uint type; GetBinaryType("applicationName",out type); 我曾尝试使用应用程序类如下所述,但有时它会失败。 public static ExcelVersion GetExcelVersion(object applicationClass) { if (applicationClass == null) throw new ArgumentNullException("applicationClass"); PropertyInfo property = applicationClass.GetType().GetProperty("HinstancePtr", BindingFlags.Instance | BindingFlags.Public); if (property == null) return ExcelVersion.Excel; return (System.Runtime.InteropServices.Marshal.SizeOf(property.GetValue(applicationClass, null)) == 8) ? ExcelVersion.Excel2010_64 : ExcelVersion.Excel2010_32; } 有没有其他办法来检测Office 2010的位数?

在文档级别自定义中引用Windows窗体中的Excel表格

我想我会尝试学习VB.net,并从一些VSTO(VS2012)开始。 我正在尝试使用单独的Windows窗体在其中进行Excel文档自定义(.show on load)。 我可以在加载文档时打开表单。 我发现了很多如何在MSDN上的文档中放置Windows窗体控件的例子(并想出如何做到这一点),但是我在从Windows窗体引用部分Excel文档时遇到了问题。 所以例如在窗体上的主要控制我试图把这个子添加到一个button: Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Try Dim baba As Sheet1 baba.Cells(1, 2).Value = "Llaslmasd" Catch ex As Exception MsgBox(ex.Message) End Try End Sub 我也试过: Dim baba As New Sheet1 和 Dim baba As WorkSheet baba = Sheet1 如果参考表不是共享成员,或者如果我将它分享,那么引用该表的正确方法是什么?我该怎么做? 如果我以编程方式尝试插入来自其他(非合并的工作簿,因此更改图表索引? 对不起,如果我的英文不对,或者我的问题的格式不好,我仍然会通过例子。

删除Excel文档操作窗格

我们可以使用开发人员 – >扩展包 – > Microsoft操作窗格 – >附加将文档操作窗格附加到任何Excel文件。 一旦保存了excel,再次打开它以前将存储excel文件。 我有一个Excel文件(请参考图像),我希望删除(分离)文件操作窗格使用C#中的互操作编程。 这可能吗? 代码片段: Application xlApp = null; try { xlApp = new Microsoft.Office.Interop.Excel.ApplicationClass(); string versionNo = xlApp.Version; xlApp.Visible = true; Microsoft.Office.Core.MsoAutomationSecurity mso = xlApp.AutomationSecurity; xlApp.AutomationSecurity = Microsoft.Office.Core.MsoAutomationSecurity.msoAutomationSecurityForceDisable; Workbook newWb = xlApp.Workbooks.Open(fileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); // Here […]