使用互操作将 datagridview 导出到 excel

Posted

技术标签:

【中文标题】使用互操作将 datagridview 导出到 excel【英文标题】:export datagridview to excel with interop 【发布时间】:2012-11-15 15:08:09 【问题描述】:

我想问是否有另一种方法可以从datagridview导出到excel。因为我是通过互操作完成的,而且对于大文件来说非常慢。现在我也想用互操作来做,但它应该更快地加载数据。

我使用的代码:

 for (int i = 1; i < dataGridView1.Columns.Count + 1; i++)
            
                xlWorkSheet1.Cells[1, i] = dataGridView1.Columns[i - 1].HeaderText;
            

            for (int i = 0; i <= dataGridView1.RowCount - 1; i++)
            
                for (int j = 0; j <= dataGridView1.ColumnCount - 1; j++)
                
                    DataGridViewCell cell = dataGridView1[j, i];
                    xlWorkSheet1.Cells[i + 2, j + 1] = cell.Value;
                
            

现在我想导出的不是单元格,而是行。 object[,] values1 的东西

我从excel导出到数据表的代码:

            object[,] values1 = (object[,])xlWorksheet1.UsedRange.Value2; // excelTb1
            for (int k = 0; k < values1.GetLength(1); )
            
               excelTb1.Columns.Add((string)values1[1, ++k]);
            

            object[] singleDValue = new object[values1.GetLength(1)];


            for (int i = 1; i < values1.GetLength(0); i++)
            
                for (int k = 0; k < values1.GetLength(1); )
                
                    singleDValue[k] = values1[i + 1, ++k];
                


                excelTb1.LoadDataRow(singleDValue, System.Data.LoadOption.PreserveChanges);
            

有人可以告诉我如何从 datagridview 到 excel 吗?

【问题讨论】:

如果速度太慢可以直接写入CSV文件 你能给我举个例子吗? 通过 OledbConnection 怎么样?我认为您可以将数据网格绑定到后台的 DataTable,并使用 OledbConnection 将数据插入 Excel 电子表格? 不,OLEDB 只能写 255 个字符,我的 datagridview 有超过 255 个字符 也许codeproject.com/Articles/37055/… 【参考方案1】:

我觉得这篇文章对你有很大帮助,它可以导出datagridview到excel,最大数据6000行,速度比较快。

9 Solutions to Export Data to Excel for ASP.NET

【讨论】:

以上是关于使用互操作将 datagridview 导出到 excel的主要内容,如果未能解决你的问题,请参考以下文章

数据导出之winfrom导出word

将 DataGridView 导出到文本文件,保持列对齐

如何将datagridview导出到Open Office Excel c#

如何使用 Excel 对象将 DataGridView 数据导出到 Excel

将 dataGridView 数据导出到 excel 时出现错误

在C#中将CSV文件导出到DataGridview