Tag: winforms

如何启用从Excel复制粘贴到自定义DataGridView?

我试图在自己的环境中解决这个老问题,改编了许多不同的解决scheme,但仍然没有成功。 我有一个User Control ,名为EntryGrid ,有一个DataGridView ,它的头,这样的事情在代码中设置。 然后有一个EntryGrid删除的表单。 我知道excel列必须准备好能够将所有单元格粘贴到一行中,为此,我使用了以下解决scheme: copypaste ,除了Copy部分。 这就是我在这里的样子: Private Sub EntryGrid_KeyDown(sender As Object, e As KeyEventArgs) Handles EntryGrid4.KeyDown, EntryGrid8.KeyDown, EntryGrid16.KeyDown, EntryGrid32.KeyDown e.Handled = True Dim entryGrid As EntryGrid = sender Dim dataGrid As DataGridView = entryGrid.DataGrid If (e.Control And e.KeyCode = Keys.V) Then MessageBox.Show("Success") 'for now End If End Sub 这绝对不适合我。 我甚至将KeyPreview设置为True […]

以编程方式保存网页上的excel文件

我有一个网页,显示一些报告。 当我点击excel链接时,它将屏幕上显示的所有数据都放到一个CSV文件中,并打开一个文件下载窗口,让我打开,保存或取消。 我想以编程方式将这个文件下载到一个指定的位置,而不需要用户看到文件下载窗口。 我正在使用Windows应用程序。 我没有网站的代码显示这个报告,因此没有数据集。 另外,我查看了通过在页面上查看源代码而生成的HTML,但是我无法真正地通过它来获取数据。 因此,我需要知道如何从给定的网站下载Excel文件到我的电脑上的位置。 提前致谢 丽塔

如何解决无法投射“System.Data.DataView”types的对象来键入“System.Data.DataTable”错误

我在表单上有Devxpress GridControl, 我想发送这个网格上的数据,以优秀。 我不想用ExportToExcel方法做到这一点 我GOOGLE了,发现这个代码 但是这个代码是用于.Net的DataGrid控件,当它试图将DevExpress.XtraGrid.Views.Grid.GridView转换为System.Data.DataView时会产生错误 这里是代码 public string LastCoulmLetter(int coulmnCount) { string finalColLetter = string.Empty; string colCharset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; int colCharsetLen = colCharset.Length; if (coulmnCount > colCharsetLen) { finalColLetter = colCharset.Substring( (coulmnCount – 1) / colCharsetLen – 1, 1); } finalColLetter += colCharset.Substring( (coulmnCount – 1) % colCharsetLen, 1); return finalColLetter; } public void […]

使用C#将DataGridView数据导出到Excel文件

我需要从DataGridView(在我的WinForms应用程序)导出数据到Excel文件。 我search了一些关于这个主题的教程,但我很难得到任何可用的解决scheme。 我从这个教程开始。 但是当我尝试导出datagridview到excel文件我得到unhandled COMException: Microsoft.Office.Interop.Excel.ApplicationClass ExcelApp = new Microsoft.Office.Interop.Excel.ApplicationClass(); 我也试过这个教程 ,但结果相同。 我发现和阅读的另一篇文章是这个 。 无法使代码正常工作,可能是因为我无法在“ Add Reference对话框的“ COM tab中findMicrosoft Excel 12.0 object library 。 我正在使用Visual Studio 2010 Ultimate。

颜色使用winforms excel细胞

您好我想出口的几个button的颜色到Excel中button代表一个网格,并dynamic创build。 代码我似乎给我的颜色的名称,而不是导出到Excel时的单元格的实际颜色。 for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { worksheet.Cells[i + 2, j + 1] = (buttons[i][j].BackColor); } }

打开一个Excel文件从button点击一个窗体

private void btnOpenReport_Click(object sender, EventArgs e) { if (System.IO.File.Exists(outputFilePath)) { Process.Start(new ProcessStartInfo("excel.exe", " /select, " + outputFilePath.Replace("\\\\", "\\"))); } }

处理两个大的Excel文件

任务:在C#中创build一个Windows Forms应用程序,该应用程序将从两个包含有关客户端的数据的不同数据库中导出两个Excel文件(每个大约50行,约300k行)。 在下面的屏幕截图中,我试图直观地解释需要什么: 问题是加载大文件! 首先,我以为我可以用oledb做到这一点,并将数据加载到数据表中,并在内存中处理它们,但这需要很长时间,并使用大量的内存: OleDbConnection con1 = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath1 + ";Extended Properties=Excel 12.0"); OleDbDataAdapter da1 = new OleDbDataAdapter("select * from [Sheet1$]", con1); DataTable dt1 = new DataTable(); da1.Fill(dt1); MessageBox.Show("filled"); 如果需要这么多只是加载1个文件,我不能想象需要多长时间来处理和比较行…任何人都可以build议一个更好的方法来完成这项任务?

根据每次写入的数据增加excel单元格

目前我必须指定要添加的值的单元格。 我怎么喜欢以某种方式增加,就像无论用户点击添加到文件button多less次,它应该增加以前的模式。 例如。 我有 : xlWorkSheet.Cells[1, 1] = comboBox2.Text; xlWorkSheet.Cells[1, 2] = textBox5.Text; xlWorkSheet.Cells[1, 3] = textBox2.Text; xlWorkSheet.Cells[1, 4] = comboBox3.Text; xlWorkSheet.Cells[1, 5] = textBox3.Text; xlWorkSheet.Cells[1, 6] = comboBox1.Text; 点击“添加到xls文件”button,我将如何使它现在遵循这个模式,并保存到文件,而不必写入代码: xlWorkSheet.Cells[2, 1] = comboBox2.Text; xlWorkSheet.Cells[2, 2] = textBox5.Text; xlWorkSheet.Cells[2, 3] = textBox2.Text; xlWorkSheet.Cells[2, 4] = comboBox3.Text; xlWorkSheet.Cells[2, 5] = textBox3.Text; xlWorkSheet.Cells[2, 6] = comboBox1.Text; 这不像我可以复制和粘贴每一次,这将是太繁琐。 […]

C#窗体unit testing

我现在正在为现有的软件编写unit testing,我的老板要求我写一个unit testing大纲/计划。 作为一个非常初级的C#开发人员,我试图find一种方法来为这个应用程序创build一个testing计划。 我已经build立了一个Excel文档,其中多张表格代表我的解决scheme中的每个项目。 我很困惑如何为所有可能的结果和input文件,特别是使用void和bool方法时。 或者当传递模型到一个方法中,那里有很多值被传入。 我怎样才能certificate通过,失败,以下2种方法的预期结果,基本大纲是我正在寻找的,而不是具体的文档: public static void ManualEntryToggleStateChanged(bool isChecked) { /* check for manual entry * if manual entry information can be entered * focus user to reg no */ moTextboxRegName.ReadOnly = !isChecked; moTextboxRegHerd.ReadOnly = !isChecked; if (isChecked) { moTextboxRegHerd.Text = ""; moTextboxRegName.Text = ""; moDropDownListBreed.Focus(); } } public static void […]

asynchronous和等待命令编译没有错误,但不会让我的Windows窗体响应

我有一个Excel工具箱项目上的工作表。 我有一个下拉菜单,允许用户select一个值,并点击“运行”button(我的button1),并认为所有工作正常,假设数据是在Excel工作表内,目前是手动完成。 但是,如果我想添加第二个button(button2),它将自动从SQL Server中“刷新”数据,它将运行…但不是asynchronous的。 这是我的button2: private async void button2_Click(object sender, EventArgs e) { var Excel = Globals.ThisWorkbook.Application; var activebook = Excel.ActiveWorkbook; var ws = Excel.ActiveSheet; SQLServer server = new SQLServer(); int t = await Task.Run(() => server.getInfo(activebook, ws, Excel)); } 代码运行良好,但我不想让用户在Excel窗口响应之前等待6000行excel表单被填充。 我在这里做错了什么? 编辑 我很抱歉的混淆,我对这个网站还很新,并不意味着造成这么多混乱。 我正试图运行这个方法: public void getInfo(Workbook book, Worksheet activesheet, Microsoft.Office.Interop.Excel.Application app) { SqlConnection […]