Tag: winforms

Microsoft Office互操作性能问题

我试图将datagridview数据导出到我的C#4.0 Windows应用程序中的excel文件。 我们使用Microsoft.Office.Interop.Excel DLL版本12.0.0.0。 它运作良好,一切 很好。 但是当我尝试导出超过1000个datagridviewlogging它需要太长时间 时间。我可以如何提高performance。 请参阅下面的Excel帮手代码。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using Microsoft.Office.Interop.Excel; using Microsoft.Office.Core; using System.Runtime.InteropServices; // For COMException using System.Reflection; // For Missing.Value and BindingFlags using System.Diagnostics; // to ensure EXCEL process is really killed namespace Export.Excel { #region InstanceFields //Instance Fields //public delegate void […]

旧格式或无效的types库。 (从HRESULTexception:0x80028018(TYPE_E_INVDATAREAD))

将数据网格视图中的数据导出到Excel工作表时出现错误: 错误(旧格式或无效types库(从HRESULTexception:0x80028018(TYPE_E_INVDATAREAD))) 在这一行上: Microsoft.Office.Interop.Excel._Workbook workbook = app.Workbooks.Add(Type.Missing); 我该如何解决这个问题? 我的完整代码: private void button1_Click(object sender, EventArgs e) { System.Globalization.CultureInfo oldCI = System.Threading.Thread.CurrentThread.CurrentCulture; System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US"); // Creating Excel Application Microsoft.Office.Interop.Excel._Application app = new Microsoft.Office.Interop.Excel.Application(); System.Threading.Thread.CurrentThread.CurrentCulture = oldCI; // Creating new WorkBook within Excel application Microsoft.Office.Interop.Excel._Workbook workbook = app.Workbooks.Add(Type.Missing); // Creating new Excel sheet in workbook Microsoft.Office.Interop.Excel._Worksheet […]

带有WebBrowser控件的Excel CustomTaskPane – 键盘/焦点问题

我有这个确切的问题https://social.msdn.microsoft.com/Forums/vstudio/en-US/e417e686-032c-4324-b778-fef66c7687cd/excel-customtaskpane-with-webbrowser-control-keyboardfocus-issues?论坛= VSTO 这里还提到https://connect.microsoft.com/VisualStudio/feedback/details/521465/the-focus-issue-between-excel-cells-and-excel-customtaskpane-with-webbrowser-control 我正在写一个使用Visual Studio Professional 2013的Excel 2010插件。我用一个System.Windows.Forms.WebBrowser子程序创build了一个简单的CustomTaskPane。 该插件工作正常,我可以通过点击浏览网页浏览器,并改变checkbox的状态。 当我点击一个input文本框我得到焦点,我看到光标闪烁,但是当我开始input文本发送到Excel,并写入到一个单元格,而不是浏览器内的文本框。 当function区加载时,我添加自定义任务窗格。 private void Ribbon_Load(object sender, RibbonUIEventArgs e) { TaskPaneView taskPaneView = new TaskPaneView(); Microsoft.Office.Tools.CustomTaskPane myTaskPane = Globals.ThisAddIn.CustomTaskPanes.Add(taskPaneView, "Title"); myTaskPane.Visible = true; } 当我点击文本框然后F6它正常工作。 customtaskpane标题会稍微变暗,并在文本框中捕获文本。 我怎样才能解决这个问题,以便当我点击input文本框文本进入框,而不是Excel? 编辑:好的,我做了一些更多的testing。 如果我添加事件在我的TaskPaneView跟踪鼠标进入并单击他们的工作,但只有当我删除Web浏览器子。 这意味着Web浏览器以某种方式阻止这些事件,并阻止TaskPaneView了解它的重点。 如果我还将一个文本框表单控件添加到浏览器旁边的TaskPaneView中,则该文本框完全正常工作,并且TaskPaneView知道它具有焦点,然后浏览器中的input文本字段将开始工作。 如果我直接在Web浏览器上调用焦点方法,那么TaskPaneView就会明白它具有焦点,而且一切正常。 所以显然这个问题并不是真正的键盘问题,而是一个TaskPaneView的问题,当浏览器被点击时,没有被告知它有焦点,所以击键到了错误的地方。 如果我能find一种方法使TaskPaneView明白它已经聚焦每一个应该工作。

如何通过oledb阅读器或excel库,excel datareader或NPOI等(Interop除外)如何检查一个单元格包含公式或不在Excel中?

如何通过oledb阅读器检查一个Cell是否包含公式或不在Excel中? System.Data.OleDb.OleDbConnection conn2 = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source = " + strFileName + "; Extended Properties = \"Excel 8.0;HDR=NO;IMEX=1\";"); conn2.Open(); string strQuery2 = "SELECT * FROM [" + Table + "]"; System.Data.OleDb.OleDbDataAdapter adapter2 = new System.Data.OleDb.OleDbDataAdapter(strQuery2, conn2); System.Data.DataTable DT2 = new System.Data.DataTable(); adapter2.Fill(DT2);

如何检查,以编程方式,如果MS Excel存在于电脑上?

我有一个需要MS Excel运行的应用程序,否则它崩溃。 所以我想检查并警告用户,以防Excel未安装在用户的机器上。 我该怎么做呢?

c#(WinForms-App)将DataSet导出到Excel

我需要一个解决scheme将数据集导出到没有任何asp代码(HttpResonpsne …)的Excel文件,但我没有find一个很好的例子来做到这一点… 最好提前致谢