使用interop将datagridview导出为ex​​cel

时间:2012-11-15 15:08:10

标签: c# excel datagridview interop export

我想问一下是否有另一种从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导出到datatable的代码:

            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吗?

1 个答案:

答案 0 :(得分:0)

我认为这篇文章可能会对你有所帮助,它可以将datagridview导出为具有6000行最大数据速度的excel。

9 Solutions to Export Data to Excel for ASP.NET