Tag: winforms

如何将对象转换为C#中的数据表

我正在使用Interop lib从excel文件读取数据。 我能够连接到Excel并从中读取数据。 我得到返回types为对象[,]。 我不确定它究竟是什么。 我知道object []是对象数组。 不确定object[,] 。 我尝试了谷歌search,但没有find任何有用的解释。 此外,我想将其转换为数据表,并将其绑定到winforms中的数据网格视图。 我们是否需要在绑定之前将上面的数组转换为数据表单,还是有其他方法将其绑定到网格? 请给我一些想法来抬头。 请find下面的代码: void ReadSheetData(string strFilePath) { Workbook workBook = _excelApp.Workbooks.Open(strFilePath, 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); int numSheets = workBook.Sheets.Count; for (int sheetNum = 1; sheetNum < numSheets + 1; sheetNum++) { Worksheet sheet = […]

Winform拖放到Excel中

我想从我的winform拖放到Excel中。 例如,在Winform中按住button(或DataGridView中的一行),然后将其拖放到Excel单元格中,将执行一些操作或将一些数据写入Excel单元格。 我正在谈论的是winform和Excel之间的拖放,而不是winform组件之间的拖放。 我记得曾经看过一个例子,但在Google上找不到。 更新:按照Avantol13的回答, 我们如何提取发送给Excel的对象? 在这个例子中,将string写入单元格是一种诡计,然后检查单元格的内容以执行进一步的操作。 也许类似于DragDrop事件,我们可以提取从e.Data.GetData(e.Data.GetFormats()[0])发送的数据 此外,使用Application_SheetChange知道这个drop事件会导致它循环为Application_SheetChange – >修改单元格的代码(如下例所示)(删除单元格并写入新的内容) – >再次触发Application_SheetChange等。 提前致谢。

简单或简单的解决scheme,用于在excel中将标签和列的值相加

美好的一天,任何人都可以帮助我解决这个问题,我有一个代码在这里,从列B到列AF(31天)的水果的数目我用开关,情况1,情况31.我希望我的代码是简单或者在一个循环中。 31案件太长了。 顺便说一句,我的代码工作,我只是希望它是短暂的。 这是我的代码 private void button1_Click(object sender, EventArgs e) { Microsoft.Office.Interop.Excel.Application OfficeExcel; Microsoft.Office.Interop.Excel._Workbook OfficeWorkBook; Microsoft.Office.Interop.Excel._Worksheet OfficeSheet; var dtpMonth = dateTimePicker1.Value.ToString("MMMM"); var dtpYear = dateTimePicker1.Value.Year; var MonthYear = dtpMonth + " – " + dtpYear; var dtpDay = dateTimePicker1.Value.Day; try { OfficeExcel = new Microsoft.Office.Interop.Excel.Application(); OfficeExcel.Visible = true; int appletotal = Convert.ToInt32(lblappletotal.Text); int bananatotal = […]

Telerik RenderReport引发exception“XLS渲染格式不可用”

我有一个C#WinForms应用程序正在使用Telerik.Reporting DLL生成一个.xlstypes的报告。 我们正在使用Angular开发电子应用程序的增强版本。 我们在使用EdgeJs访问从旧产品到新产品的过渡期间的报告function。 也就是说,我们在遗留应用程序和电子应用程序中运行完全相同的C#代码 。 问题是Telerik.Reporting RenderReport方法在应用程序的电子版本中引发了“XLS渲染格式不可用”的exception,但在WinForms版本中却没有。 这里是相关的代码行: var reportSource = new InstanceReportSource { ReportDocument = rpt }; result = processor.RenderReport("XLS", reportSource, null); rptStream = new FileStream(path + "\\" + rpttmpXlsPath, FileMode.Create); rptStream.Write(result.DocumentBytes, 0, result.DocumentBytes.Length); 我们无法弄清楚为什么会发生这种情况。 以下是我们所知道的: 所报告的数据在两种情况下都是相同的。 正在执行的C#代码在两种情况下都是相同的。 这个问题在其他(非开发)机器上是可重现的。 在单个开发人员计算机(Window 7 / Excel 2010)上, 不会发生exception ,报告按预期生成。 作为额外的好处,这台机器还包含Telerik许可证来开发报告。 在Windows 7 / Excel 2010的另一台非开发机器上,我们得到相同的exception。 我们已经在Windows […]

Excel 2003 ActionsPane中的AutoSize ElementHost

我在Excel 2003 ActionsPane中托pipe一个WPF图表。 图表设置为水平和垂直拉伸,但是,尽pipeElementHost和图表横向填充了ActionsPane,但是我还没有find一种方法来使ElementHost垂直填充。 似乎对ElementHost的布局有任何影响的唯一属性是“高度”和“大小”属性。 Anchor,Dock,AutoSize似乎不会影响ActionsPane对象或ElementHost对象上的布局。 我错过了什么吗? 问候, 丹尼 // A snippet from ThisWorkbook.cs public partial class ThisWorkbook { private void ThisWorkbook_Startup(object sender, System.EventArgs e) { var ap = Globals.ThisWorkbook.ActionsPane; ap.Clear(); ap.Visible = true; var plotControl1 = new Swordfish.WPF.Charts.TestPage(); var elementHost1 = new System.Windows.Forms.Integration.ElementHost(); elementHost1.AutoSize = true; // Doesn't seem to have an effect. elementHost1.Child […]

如何使用vb.net将数据从无限量的数据文件导入DataGridView?

我需要将数据导入到DataGridView但是我需要在最后一次导入后堆叠数据。 所以,如果我的第一个文件是100条logging,而我的第二个文件是200条logging,我现在应该有300条logging。 我需要能够按导入button浏览到一个文件并导入它,它会添加到数据集的末尾。 文件和logging的数量会有很大的不同。 这里是我的代码到目前为止,但现在它只是覆盖DataGridView的数据每次我导入新的数据。 excel文件只是一个testing文件,最终生病添加一个文件夹浏览器对话框,我将select“x”数量的文件。 MyConnection = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\Work\4pc_test1.xlsx;Extended Properties=Excel 12.0;") 'MyConnection = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & fd.FileName & "';Extended Properties=Excel 8.0;") MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection) MyCommand.TableMappings.Add("Table", "Net-informations.com") DtSet = New System.Data.DataSet MyCommand.Fill(DtSet) DataGridView1.DataSource = DtSet.Tables(0) MyConnection.Close()

将数字代码复制到剪贴板并粘贴到Excel,而不将其格式化为数字

我有一个.NET Windows窗体应用程序,我需要复制一个8位数字代码列表到剪贴板粘贴到Excel工作表。 string tabbedText = string.Join("\n", codesArray); Clipboard.SetText(tabbedText); 问题在于,当一个代码以一个或多个零开始(例如“00001234”)时,它被粘贴为数字,零被修剪。 有没有办法如何设置剪贴板文本,以便Excel将其作为文本接受?

C#来模仿Excel SLOPE函数

我试图计算两个数据列表的斜率。 您可以使用SLOPEfunction轻松地在EXCEL中计算此值。 =SLOPE(A1:A100, B1:B100) 。 我试图在C#WinForm中模仿这个函数。 这里是我的代码,它可以计算出一些东西,但不是从Excel函数中得到的正确数字。 请帮我看看这里的错误。 非常感谢! private double Getslope(List<double> ProductGrossExcessReturnOverRFR, List<double> primaryIndexExcessReturnOverRFR, int months, int go_back = 0) { double slope = 0; double sumx = 0, sumy = 0, sumxy = 0, sumx2 = 0; for (int i = ProductGrossExcessReturnOverRFR.Count – 1 – go_back; i > ProductGrossExcessReturnOverRFR.Count – (1 + months […]

在C#中使用specFlow进行BDDtesting。 从Excel应用程序和WinForms获取input

我正在使用通过Visual Studio 2012框架构build的基于C#的应用程序。 它启动一个Excel电子表格,允许用户在excel单元格中input(还有Win Forms /对话框等等,popup询问input),然后根据input执行计算并产生结果。 我正在尝试使用SpecFlow来自动化这样的testing场景。 有谁知道任何教程等可以指导我? 这是否有意义,我想要实现? 可以通过黄瓜以某种方式或任何其他的build议吗? 我只使用SpecFlow在C#中进行简单的testing,而不涉及popupexcel和询问用户input。 我在这里先向您的帮助表示感谢。

SpreadSheetGear右键菜单在Vb.Net中编辑

我可以:在SpreatSheetGear中编辑所选单元格的右键单击菜单,添加一个选项,如合并,然后处理select该菜单项的事件点击? 在此先感谢分享一些想法。