Tag: datagridview

从datagridview复制粘贴到excel时如何保持颜色?

我使用以下CellFormatting代码来有条件地为我的datagridview中的行着色。 private void SGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { if (e.ColumnIndex == SGridView.Columns["Name"].Index ) { DataGridViewRow row = SGridView.Rows[e.RowIndex]; SBomRow BomRow = (SBomRow )row.DataBoundItem; switch (BomRow.UsageType()) { case (UsageType.NE): break; case (UsageType.SV): e.CellStyle.BackColor = Color.OrangeRed; break; case (UsageType.Mix): e.CellStyle.BackColor = Color.LightGray; break; default: break; } } } 当我从datagridview复制粘贴到excel时,着色会丢失。 我知道在粘贴时数据会作为HTML和CSV数据添加到剪贴板,所以在粘贴到excel时可能不会着色。 这是真的,还是有复制粘贴时保持颜色的方法。

当我尝试在C#程序中上传文件时出现错误消息“外部表格不是预期的格式”

我正在创build一个C#程序,我可以在C#中浏览和查看文件到datagridview中。 我已经testing了很多次,并且运行良好。 但昨天当我试图再次做一个错误messaged显示“ 提供程序= Microsoft.Jet.OLEDB.4.0; ”。 我正在testing的文件与之前使用的文件相同(没有错误)。 我没有做任何与文件(Excel文件)。 这是错误消息的打印屏幕: 这是我使用的代码: private void buttonUpload_Click(object sender, EventArgs e) { string OleDBConnection = String.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;""", textBoxFileName.Text); string query = String.Format("select * from [{0}$]", "Sheet1"); OleDbDataAdapter dataAdapter = new OleDbDataAdapter(query, OleDBConnection); DataSet dataSet = new DataSet(); dataAdapter.Fill(dataSet); dataGridView1.DataSource = dataSet.Tables[0]; }

将Excel导入到DataGridView中

我正在做一个程序,两个数据库合并在一起….我可以导入一个Excel电子表格到这个代码的DataGridView: string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\test.xls;Extended Properties=""Excel 8.0;HDR=YES;IMEX=1"""; DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb"); DbDataAdapter adapter = factory.CreateDataAdapter(); DbCommand selectCommand = factory.CreateCommand(); selectCommand.CommandText = "SELECT * FROM [All Carpets to Excel$]"; DbConnection connection = factory.CreateConnection(); connection.ConnectionString = connectionString; selectCommand.Connection = connection; adapter.SelectCommand = selectCommand; data = new DataSet(); adapter.Fill(data); dataGridView1.DataSource = data.Tables[0].DefaultView; 我遇到的问题是,我试图find一种方法来将源文件更改为由对话框返回的path。 我有一个包含文件path的string文件。 我如何将这个到连接string? 或者也许有一个更好的方法来做到这一点? 谢谢! […]

导入Excel工作表到datagridview – 工作簿需要closures才能使用OleDB?

我试图导入一个Excel工作表到datagridview,但我遇到了一个错误:“数据库或对象是只读的。 但是,我正在引用的工作簿没有应用只读属性。 话虽如此,我连接的工作簿已经打开,如果我的应用程序正在运行,所以我怀疑这是我遇到这个错误的原因。 工作簿是打开的,因此在尝试填充数据集时,系统显示为只读。 我对这个假设是否正确? 如果我连接的工作簿是打开的,他们是一种使用OleDB连接将Excel工作表导入到datagridview的方法吗? 如果没有,有没有其他的方式来填充这个datagridview,而不必通过我的工作表进行大规模的循环? 我的代码如下: Try 'connect to Excel data source and set gridview equal to dataset (entire sheet should be visible in gridview) Dim MyConnection As System.Data.OleDb.OleDbConnection Dim MyCommand As System.Data.OleDb.OleDbDataAdapter Dim connstring As String = "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & StatVar.workbookName & ";Extended Properties=""Excel 12.0;HDR=YES;Readonly=False"";" 'may need to use different […]

从Excel导入特定数据到datagrid vb.net

我想从excel中导入特定数据到datagrid,并能够使用下面的查询将所有excel数据导入到datagrid中 从[Allinone $]中select* 下面还查询工作文件 从[Allinone $]中select状态 但下面的查询不工作 从[Allinone $]中selectpart.desc 而我的代码如下 Try Dim filename As String Dim ofd As New OpenFileDialog ofd.Title = "Please select the excel which you want to import" If ofd.ShowDialog = DialogResult.OK Then filename = ofd.FileName Dim strin As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & filename & ";Extended Properties=""Excel 12.0;HDR=YES"";" Dim con […]

在大型datagridview数据源中实现像excel(性能明智)过滤

这个问题来自于build议的单独问题, 以便对大型datagridview数据源进行更高效的过滤 。 所以现在我的过滤在大型数据源(220k行)上很慢。 我过滤的方式是通过绑定源: mBindingSource.Filter = Filter; 这很慢,因为它可能遍历数据表的所有行。 当我尝试在Excel中过滤相同大小的数据时,过滤速度要快很多倍。 我想知道是否有人知道,或者可以指出我正确的方向,如何实现其过滤Excel。 也许一小段代码也可以帮助。

将多个数据源添加到datagridview vb.net

我有一个DataGridView ,我从多个Excel文件导入数据。 但是每次我导入数据都会覆盖以前的数据。 我如何得到它在数据网格视图中添加下一个excel文件到前面的结尾? If DataGridView1.RowCount > 0 Then 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) Dim tab As DataTable = DtSet.Tables(0) DataGridView1.DataSource = tab MyConnection.Close() […]

导入一个特定的范围从xls文件到datagridview在c#

我想要将一个特定范围的xls文件导入到datagridview中。 问题是:范围每次都在变化,所以我需要用户能够select它。 有没有一个优雅的方式来做到这一点?

C#DataGridView Colspan

我想用datagridviewdynamic创build一个类似Excel的datagridview ,但是我希望可以select将colspan设置为某些列。 这个想法只是显示数据,用户不会input任何内容,但它应该在表/电子表格中。 如果我不能有与colspan datagridview是否有任何其他types的表类工具,有一个colspan ? 另一方面,将从数据库查询结果dynamic创build列。 我正在使用Windows窗体。 有任何想法吗?

如何启用从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 […]