Tag: interop

Excel 2010 interop定义了内嵌的XML样式

在.net中,您可以通过编程创buildExcel表格。 你可以像这样定义一个样式: <Style ss:ID="DateLiteral"> <NumberFormat ss:Format="dd/MM/yy"/> </Style> 并将该样式分配给单元格。 <Cell ss:StyleID="DateLiteral"> <Data ss:Type="DateTime">2017-01-20T00:00:00</Data> </Cell> 而不是分配一个静态date样式到所有的date单元格,我宁愿dynamic地设置每个样式。 我发现没有办法在单元节点中定义样式。 我该怎么做呢?

公共variables的参考迷失在C#

在我的class级里,我正在宣布 public Excel.Range range { get; set; } 该类的构造函数调用此方法: private void OpenWorkBook() { string str; int rCnt = 0; int cCnt = 0; xlApp = new Excel.ApplicationClass(); xlWorkBook = xlApp.Workbooks.Open(MasterFileName, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); range = xlWorkSheet.UsedRange; } 之后,当我参考不同的方法range : public void […]

在SSIS中使用Excel Interop的问题

我在安装Excel 2007的服务器上的SSIS脚本任务中使用Excel Interop。 几天后,我尝试打开脚本任务时出现错误。 每当我打开代码时,对Interop的引用都会标记一个黄色的警告标志,并且不能引用该命名空间。 我不能通过“添加引用”再次添加它,当我尝试在COM选项卡中添加Excel对象库时,它也添加了黄色警告标志(我找不到错误消息)。 但是,当我不保存更改并且只运行整个项目时,它没有问题。 因此,互操作似乎工作,但它在Visual Studio中找不到。 我试图再次安装PrimaryInteropAssemblies,没有成功。 互操作程序集仍在c:\ windows \ assembly下find。 奇怪的是,没有为程序集提供处理器架构,而是在我的开发机器上。 我试图卸载程序集,然后再次安装,但由于权限不足(即使以pipe理员身份)也无法完成。 我不得不在几天前安装Windows SDK来使用gacutil,这可能是缺less参考的原因吗? 编程语言是Visual Studio 2010中的C#2010。 谢谢, 编辑:我find了一个解决scheme,但它仍然不工作,因为它应该是。 以下是它的工作原理:通过将引用的“指定版本”属性设置为false,可以解决问题。 新的项目可以通过在C:\ Windows \ assembly \ GAC \ Microsoft.Office.Interop.Excel \ 12.0.0.0__71e9bce111e9429c \ Microsoft.Office.Interop.Excel.dll

使用常量查找所有单元格崩溃Excel

我正在尝试使用Excel Interop程序集来查找具有常量的所有单元格的计数。 在小文件这工作正常。 但是在更大的文件excel崩溃。 我用206963行和9列的文件试了一下,excel崩溃了。 任何人都知道解决方法? 是否有一个SpecialCells函数的限制列表,什么时候不应该使用? 以下是我的代码: public static int getConstantCount(Range myRange) //myRange = myWorksheet.UsedRange { try { return myRange.SpecialCells(XlCellType.xlCellTypeConstants).Count; } catch (System.Runtime.InteropServices.COMException ex) { return 0; } } 我注意到这也发生在Excel本身没有使用任何互操作程序集。 看看https://superuser.com/questions/632856/excel-go-to-special-crashes-on-large-file

使用互操作在后台打开Excel工作簿

我想要从Excel工作簿中导入数据,而不实际显示打开的工作簿。 我可以发誓我已经在以前的项目中使用了以下代码,它已经工作: var excelApp = new Excel.Application { Visible = false }; var workbook = excelApp.Workbooks.Open(filePath); 不幸的是,当工作簿打开时,它显示给用户,对于这个应用程序是不必要的。 我在此项目上使用Microsoft Excel 15.0对象库时,以前我认为它是版本12或13.也许这是问题,或者是我的记忆淡出和代码是不正确的?

将.net 4.0语法OfType转换为.net 3.5

我有这个.NET 4.0代码: var myTable = tables[1]; myTable = tables.Item["Table1"]; myTable = tables.OfType<Excel.ListObject>().FirstOrDefault(t => t.Name == "Table1"); 我正在尝试与.NET 3.5编译并得到一堆错误: 错误23属性,索引器或事件“Item”不受该语言支持; 尝试直接调用访问器方法'Microsoft.Office.Interop.Excel.ListObjects.get_Item(object)' 和 错误24'Microsoft.Office.Interop.Excel.ListObjects'不包含'OfType'的定义和最佳扩展方法重载'System.Linq.Queryable.OfType(System.Linq.IQueryable)'有一些无效的参数 和 错误25实例参数:无法从“Microsoft.Office.Interop.Excel.ListObjects”转换为“System.Linq.IQueryable” 你能指导我什么这些错误的意思,以便我可以尝试将其转换为.NET 3.5? 非常感谢你的build议。

在WebBrowser控件中控制Excel

我试图加载一个.xls文件到我的Windows窗体应用程序中的Web浏览器控件,以这种方式,我可以不断更新数据以编程方式。 因此,例如,当用户按下表单上的button时,Excel工作表中的数据就会更新。 我已经设法很容易地将数据加载到控件中: WebBrowser1.Navigate(PathToXLSFile) 而且,根据我在网上阅读的内容,我现在应该可以通过以下方式获得对该表的控制: Dim wb As Object WebBrowser1.Navigate(PathToXLSFile) wb = WebBrowser1.Document 现在,我已经尝试把最后一行代码放到WebBrowser1_DocumentCompleted 和 WebBrowser1_Navigated模块中,但是对于这两个模块,我得到的是WebBrowser1.Document = Nothing 。 我已经在网上find了这样的解决scheme, 这个和这个 ,但是他们都没有为我工作。 再次,我要做的是将Excel工作表加载到Web浏览器控件(或其他控件,如果你有更好的想法),并能够编辑/通过.NET更改。 至于我的完整情况(为什么我需要这个): 基本上,我的程序产生了大量的数据,最终用户希望以特定的方式(经常更改)看到格式化,所以我所做的是创build一个格式化的Excel表格,其公式引用回不同的Excel表格。 这样,我的程序需要做的就是把所有的计算值吐出到表格中,然后数据在那里供用户查看(并且非常容易定制而不会搞乱我的程序)。 现在的挑战是,现在他们想要在Windows窗体上看到这些数据的大量迭代,所以基本上我需要做的是每次他们想要看到新的数据,在运行中计算并重新显示他们。 我想通过DataGridView很难在这里使用,因为格式复杂,所以我要做的是向他们展示“输出”表(通过webBrowser控件,因为这是我能find的),并有能力不断更新“input”表与新的数据,使输出表不断更新。

用一个大胆的单词replace一个单词使用Excel Interop c#

我正在使用以下search我的整个Excel工作表,并用“要求”replace'请求': oSheet.Cells.Replace("req", "requirement"); 而不是取代req这个词,我想大胆。 我怎样才能做到这一点? 我知道这是错误的,但理论上我想要做到以下几点: oSheet.Cells.Replace("req", "<b>req</b>"); 谢谢。

附加到现有的Excel实例

我试图确定是否打开一个特定的文件运行Excel的实例,如果这样附加到它,所以我可以控制该实例。 我已经搜遍了,而我所得到的大部分都来自这个问题。 它有一个对另一个网站的参考,但不幸的是它已经死了,所以我不能读它。 我的代码到目前为止是; //Is Excel open? if (Process.GetProcessesByName("EXCEL").Length != 0) { Process[] processes = Process.GetProcesses(); foreach (Process process in processes) { //Find the exact Excel instance if (process.ProcessName.ToString() == "EXCEL" && process.MainWindowTitle == ("Microsoft Excel – " + fileName)) { //Get the process ID of that instance int processID = (int)Process.GetProcessById(process.Id).MainWindowHandle; //Attach to the […]

在任务窗格中使用时,WPFcombobox不会保持打开状态

我有一个WPF互操作和Excel地址奇怪的错误。 我正在使用.Net 3.5 SP1。 我正在使用外接快速为Excel 2003创build自定义任务窗格。在该任务窗格中,我使用ElementHost来托pipeWPF UserControl。 UserControl只包含一个带有TextBox和ComboBox的Grid。 我的问题是,虽然一切正常显示,combobox将不会保持下降,除非我按住向下箭头的鼠标。 我不相信这一定与外接快车有关,因为当我尝试在Excel中无模式地显示一个WPF窗口时,我遇到了类似的问题。 第二个问题是ComboBox似乎不愿意放弃焦点。 如果我点击它,文本区域变灰,表示它有焦点,但是我不能在窗口的任何其他位置移动焦点。 争夺焦点的唯一方法是移动鼠标滚轮。 其他人有类似的问题,并设法解决它?