Tag: 互操作

C#Excel不要求login

我有一个在多台计算机上使用的应用程序,他们都访问一个Excel文档,问题是,当2个用户一次使用它,用户会得到一个错误,该文件正在被别人使用。 我通过将其设置为只读打开来解决此问题,但问题在于它要求我login(“键入您要打开的帐户的电子邮件…”) 如果每个用户都要login,这是不是很实际,有没有办法跳过这个? 如果我closures提示符,但正常工作。 excApp = new Excel.Application(); excWkb = excApp.Workbooks.Open(strWkbLocation, ReadOnly: true); 谢谢

用曲线图C#Excel数据标签

我正在尝试使用C#在Excel 线图中添加数据标签。 但是我有一些问题。 在Excel曲线图中使用数据标签是否真的兼容? 如果数据太多,它开始看起来如此热门? 我可以在系列中的同一点添加多个数据标签吗? 因为我是用C#做的,但是它只显示最后一个。 如何更改数据标签的形状? 如何更改数据标签大小? 如果有人有解决scheme或build议,请给我build议。 这将是高度赞赏。 谢谢

打开Excel模板(xltx)作为Excel模板不是工作簿

我想写一行代码来打开一个Excel模板(xltx)文件作为一个Excel模板文件而不是一个新的工作簿。 我只想让用户查看和编辑他们在我们networking上的库文件夹中的模板。 然而,我试过的一切都是打开一个新的工作簿而不是一个模板。 我试过interop: Workbooks.Open(selectedxltxFile, Missing.Value, Missing.Value, Excel.XlFileFormat.xlOpenXMLTemplate, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); 还有Process.Start方法: System.Diagnostics.Process.Start(@"C:\MYTemnplate.xltx") 这是可能的,还是我吠叫错了树?

Excel列删除限制使用内部操作Excel不受保护的表格C#

我有一个excel模板,在这里我依靠列索引来更新数据到数据库通过C#excel inter op add。 但是excel应该是可编辑的。 工作表是不受保护的,如果有人更改数据,然后必须通过Excel添加同步到服务器。 一切正常,但直到模板没有改变。 但是,如果有人删除列或更改模板,那么它不能正常工作。 所以我想限制不要删除excel的列。

C#excel interop剪切和粘贴exception

我在做一个项目,遇到了一个我不知道如何解决的例外。 我到处search,找不到有帮助的解决scheme。 我试图在电子表格中删除一个范围,这个电子表格在列A中的一个单元格中find了一个特定的值,并将该特定值的整行粘贴到一个从A2开始的新电子表格中,直到在原始值中找不到该值电子表格。 我的代码当前在新的电子表格中粘贴了一行,然后给我这个例外:“由于剪切区域和粘贴区域的大小和形状不一样,所以无法粘贴信息”。 Excel.Range from = currentFind.EntireRow; Excel.Range to = oSheet.get_Range("A2:A2500"); 我想我需要使用活动单元格和活动工作表属性。 请帮帮我! public void btnLoad_Click(object sender, EventArgs e) { Excel.Application oXL; Excel._Workbook oWB; Excel._Worksheet oSheet; if (dmCheck.IsChecked == true && fldCheck.IsChecked == true) { oXL = new Excel.Application(); oXL.Visible = true; oWB = (Excel._Workbook)(oXL.Workbooks.Add()); oSheet = (Excel._Worksheet)oWB.ActiveSheet; string dXLPath = @"N:/DAILY2.xlsx"; Excel.Workbook dWB […]

如何以编程方式在Interop中的工作表中设置每隔一列

使用Excel Interop(.NET)我们如何以编程方式为每个其他列设置两个不同的Excel公式。 例如, Range r = _sheet.get_Range(_sheet.Cells[1, 1], _sheet.Cells[I, J]) r.Formula = "=something1" 将为每个细胞做到这一点。 但是在J列中,其他列必须有公式=something2 。 范围的大小只有在运行时才知道。

Excel表项目参考

我以编程方式打开文件夹树下的Excel工作簿来检查一些项目引用使用下面的代码 – workbook = app.Workbooks.Open(fileName,false,true,Missing,Missing,…..); foreach(Reference r in workbook.VBProject.References) { //check for a specific reference here } 这工作正常,但我的文件夹结构非常深,我有超过20,000电子表格存储在其中。 有时取决于Excel文件的大小,对Workbooks.Open()的调用需要很长时间(在某些文件上每次调用超过5分钟)。 有没有更快捷的方式来做到这一点? 谢谢您的帮助

Marshal.ReleaseComObject(…)问题

我用完所有的调用来释放一些Excel对象。 是否有必要将引用设置为null(如下面的代码)? var dateCol = sheet1.get_Range("C4", "C" + rowOffset); dateCol.NumberFormat = "Text"; Marshal.ReleaseComObject(dateCol); dateCol = null;

Microsoft Interop Excelclosuresexcel的运行实例?

嗨大家好,我一直在阅读很多人发现很难closures使用Com对象创build的正在运行的Excel应用程序的实例。 我设法零星地导致Excel实例完全closures,但不是所有的时间(我会在后面的)。 我的问题比简单地closures正在运行的Excel实例要复杂得多,因为我试图创build一个应用程序: 使用许多可用模板之一创build一个Excel文件(这工作正常) 根据在我的应用程序中select的标准填充模板的单元格(也工作正常) 允许用户继续input不能从我的应用程序中的数据派生的值(这是closures进程和删除com对象更棘手的原因) closuresExcel时保存数据(我可以得到这个工作,而不清理COM对象引用,但这显然意味着Excel进程没有被终止,试图清理COM对象引用,但它不会允许我保存工作表之后用户closuresexcel,或者不pipe我如何实现它)。 理想情况下,我想在用户closuresExcel时终止Excel进程。 (这是问题所在) 至于com对象清理,我有一个清理方法,如下所示: private void cleanUp() { for (int i = 0; i < ranges.Count; i++) { ranges[i] = null; } for(int i = 0; i < worksheets.Count; i++) { worksheets[i] = null; } for (int i = 0; i < worksheetwrappers.Count; i++) { worksheetwrappers[i] = null; } […]

C#:打开Excel(.XLSX)WorkBook => COMException

我尝试从64位Windows 7上的VS2010 .NET 3.5打开一个.XLSX文件。 这就是代码: string fileName = string.Format("{0}\\test.xlsx", Directory.GetCurrentDirectory()); Application _excelApp = new ApplicationClass(); Workbook workBook = _excelApp.Workbooks.Open(fileName); 那是我得到的错误: Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD)) 我错了什么,我几乎疯狂…我至less尝试了一切,我想…