Tag: .net

使用VBA或.NET创buildExcel加载项

我想创build一个Excel的插件,我将在一个利基市场销售。 我有编程经验,将能够编程它使用的方法很好。 加载项可以与“数据分析”加载项相媲美。 我的问题是什么是我最好的方法来做到这一点? 我已经开始在VBA,但语言似乎相当有限,有点令人沮丧。 使用.Net并使用VBA从那里来回传递variables会更好吗? .NET中最大的插件是什么? 任何其他意见将不胜感激。

Excel VBA和.NET中乘法数组最快的方法

我正在尽可能快地繁殖arrays。 会有非常大的数组,乘以很多次。 我有下面的代码使用嵌套循环,有没有更快的方式做到这一点? 我有数组a()和b(),并且我想使sum(1)= a(1)* b(1)+ a(1)* b(2)+ a(1)* b(3)等等.. 目前我在Excel VBA中,但我很快就会转换为VBA.NET。 比在Excel VBA中运行速度要快多less? .net中有更快的方法可以使用吗? Sub Test() ' Just creating the arrays Dim a() as Integer, b() as Integer, sum() as Integer, i as Integer, j as Integer ReDim a(1 to 3) ReDim b(1 to 3) ReDim sum(1 to 3) For i = 1 to […]

如何通过在List C#中传递checkbox名称来在Winform上创builddynamiccheckbox?

我正在开发excel插件项目c#。 想要创buildList中传入名称的checkbox列表,我怎样才能创build与名为? 并且还想取那个checkbox的选定值。 目前我有一个buttonLoadEmployee当我点击所有EmployeeNames从Sql表直接加载到Excel工作表 现在我想要做的是,当我点击LoadEmployee ,将打开一个包含所有员工姓名的popup窗口,每个emplyee名称都有一个checkbox,我select哪一个员工姓名只填充其他。 在@Vajura给出的答案的帮助下,我尝试了一下 称为popup窗体使用 new FilterDataForm().ShowDialog(mylist); popup窗体.cs internal void ShowDialog(MyModel.ListEmployee> mylist) { GenerateFilterList(mylist); } private void GenerateFilterList(List<ListEmployee> mylist) { System.Windows.Forms.CheckBox box; for (int i = 0; i < mylist.Count; i++) { box = new System.Windows.Forms.CheckBox(); box.Tag = mylist[i]; box.Text = mylisti].ToString(); box.AutoSize = true; box.Location = new Point(10, i * 50); […]

在Diagnostics.Process.Start()完成之前,应用程序不会退出

我有一个打开Excel .xlsm文件的应用程序。 Excel文件在Auto_Open()中有一堆长时间运行的代码,可能需要几分钟才能完成。 目前,我打开Excel文件,而macros仍在运行,我退出我的应用程序。 主窗口closures,但我可以看到MyApp.exe在任务pipe理器中运行,直到macros完成,此时MyApp.exe进程结束。 private void btnOpenExcel_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start(excelFilePath); } private void btnClose_Click(object sender, RoutedEventArgs e) { Application.Current.Shutdown(); //Also tried this.Close(); } 我希望能够打开Excel文件,然后退出我的应用程序,而不必等待Excelmacros完成。 这可能吗?

Excel导入错误在ASP.net

我想通过数据集从asp.net网站导入一个Excel的数据库。 这是我的第一部分。 int xlColCount = 1; wb = app.Workbooks.Open(FilePath, 0, false, 5, "", "", true, Ex.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); ws = (Ex.Worksheet)wb.ActiveSheet; xlColCount = ws.Columns.Count; xlColCount = ws.UsedRange.Columns.Count; ws.Columns.ClearFormats(); xlColCount = ws.UsedRange.Columns.Count; //creating datacolumns for (int i = 0; i < xlColCount; i++) { try { DSname.Tables[0].Columns.Add(((Ex.Range)ws.Cells[1,strColArr[i]]).Value2.ToString().Trim()); } catch(Exception ex) { […]

在Excel中更改跟踪

为了避免轮询MS Excel文件,我正在寻找类似于SqlDependency类的东西,它可以提醒应用程序关于文件的更改。 另外,有没有类似的SQL更改跟踪function ,为MS Excel(2010年或以上)? 我唯一的目的是在GridView显示excel文件内容,并用excel中新插入的行更新GridView 。 我经历了ListObject.Change事件 ,但它适用于选定的范围,并返回更改的单元格。 但我需要新插入或删除行(不需要单元格编辑或更新)。

任何想法,为什么我得到的错误“列号必须在1和16384之间?

我的代码试图完成的是将所有单元格从一个工作表复制到另一个工作表。 这是简单的块 // find the index of the first empty row and column in the dumped file int m = 1; while ( !wb.Worksheet(3).Cell(m,1).IsEmpty() ) ++m; int n = 1; while ( !wb.Worksheet(3).Cell(1,n).IsEmpty() ) ++n; // copy from dumped file into raw data file for (int i = 1; i < m; ++i ) { […]

如何提高在OpenXml Excel电子表格工具中从SharedStringTable中检索值的性能?

我使用DocumentFormat.OpenXml来读取Excel电子表格。 我有一个性能瓶颈用于从SharedStringTable对象查找单元格值的代码(它似乎是某种查找表的单元格值): var returnValue = sharedStringTablePart.SharedStringTable.ChildElements.GetItem(parsedValue).InnerText; 我已经创build了一个字典,以确保我只检索一次值: if (dictionary.ContainsKey(parsedValue)) { return dictionary[parsedValue]; } var fetchedValue = sharedStringTablePart.SharedStringTable.ChildElements.GetItem(parsedValue).InnerText; dictionary.Add(parsedValue, fetchedValue); return fetchedValue; 这使演出时间缩短了近50%。 但是,我的指标表明,从SharedStringTable对象获取值执行123,951次的代码行仍需要208秒。 有没有其他的方法来优化这个操作?

我怎么能得到在Excel中的数字表中的数字,以及如何closuresExcel应用程序打开后

var excelApp = new Excel.Application(); var excelWorkbook = excelApp.Workbooks.Open(Program.FileName); var excelSheets1 = excelWorkbook.Worksheets; var excelWorksheet1 = (Excel.Worksheet)excelSheets1.Item["Sheet1"]; for (var i = 2; i <= 62; i++) { for (var j = 2; j <= 5; j++) { var iRow = _dtCode1.NewRow(); var cellValue = Convert.ToString(((Excel.Range)excelWorksheet1.Cells[i, j]).Value); var codeValue = Convert.ToString(((Excel.Range)excelWorksheet1.Cells[i + 1, j]).Value); iRow[0] = […]

Excel Interop – 保存前设置文件名

文件保存前可以设置excel文件名吗? 我有以下简单的代码: using Excel = Microsoft.Office.Interop.Excel; Excel.Application excel = new Excel.Application(); excel.Visible = true; Excel.Workbook workbook = excel.Workbooks.Add(Excel.XlSheetType.xlWorksheet); Excel.Worksheet sheet = workbook.Sheets[1]; sheet.Cells[1, 1] = "Hello World!"; 可以在保存前预定义这个名字吗? 谢谢。