当前位置: 代码迷 >> VB Dotnet >> 多个dataview导出数据,该怎么处理
  详细解决方案

多个dataview导出数据,该怎么处理

热度:498   发布时间:2016-04-25 02:25:07.0
多个dataview导出数据

一个dataview使用一下导出
            Dim strFilePath As String
            ExcelApp = New Microsoft.Office.Interop.Excel.Application
            ExcelApp.Visible = True
            strFilePath = Application.StartupPath + "\Template\生产报表.xls"
            ExcelBook = ExcelApp.Workbooks.Open(strFilePath)
            Dim i, j As Integer
            For i = 0 To Me.DataGridView1.RowCount - 2
                For j = 0 To 7 'Me.DataGridView1.ColumnCount - 1
                    Try
                        If Me.DataGridView1(j, i).Value Is System.DBNull.Value Then
                            ExcelApp.Cells(i + 20, j + 1) = ""
                        Else
                            ExcelApp.Cells(i + 20, j + 1) = Me.DataGridView1(j, i).Value.ToString
                        End If

                    Catch

                    End Try
                Next j
            Next i

如何将多个dataview的数据全部导出到一个excel中一个

------解决方案--------------------
在这个帖子中,我写了一个例子,你可以将excel工作表中不同区域的信息采集到二维数组中,或者写入到excel中。

http://bbs.csdn.net/topics/390691267


------解决方案--------------------

//我贴的是C#,VB得转换
//将DataGridView转为datatable
  public static System.Data.DataTable dvtodt(DataGridView dv)
        {
            System.Data.DataTable dt = new System.Data.DataTable();
            System.Data.DataColumn dc;
            for (int i = 0; i < dv.Columns.Count; i++)
            {
                dc = new System.Data.DataColumn();
                dc.ColumnName = dv.Columns[i].HeaderText.ToString();
                dt.Columns.Add(dc);
            }

            for (int j = 0; j < dv.Rows.Count; j++)
            {
                System.Data.DataRow dr = dt.NewRow();
                for (int x = 0; x < dv.Columns.Count; x++)
                {
                    dr[x] = dv.Rows[j].Cells[x].Value;

                }
                dt.Rows.Add(dr);

            }
            return dt;
        }

        private void button1_Click(object sender, EventArgs e)
        {
                  //将datatable合并
            System.Data.DataTable dt1 = dvtodt(dataGridView1);