以下为纯代码自己将DataTableHelp转化为Excel文件的方法,这适合需要做一些具体更详细的输出控制时来使用。
Vb.Net |
Dim dt As DataTableHelp = Proj.CurrentGrid.DataTableHelp Dim Book As New C1.C1Excel.C1XLBook '定义一个Excel工作簿 Dim Sheet As C1.C1Excel.XLSheet = Book.Sheets(0) '引用工作簿的第一个工作表 Dim Style As New C1.C1Excel.XLStyle(Book) '新建一个样式 Style.BackColor = Color.Red '样式的背景颜色设为红色 For j As Integer = 0 To dt.DataCols.Count -1 '添加列标题 Sheet(0, j).Value = dt.DataCols(j).Name Next For i As Integer = 0 To dt.DataRows.Count - 1 '填入数据 For j As Integer = 0 To dt.DataCols.Count -1 Sheet(i +1, j).Value = dt.DataRows(i)(j) Next Next '保存Excel Book.Save("D:\abc.xls") '打开Excel Process.Start("D:\abc.xls") |
C# |
DataTableHelp dt = Proj.CurrentGrid.DataTableHelp; C1.C1Excel.C1XLBook Book = new C1.C1Excel.C1XLBook(); // 定义一个Excel工作簿 C1.C1Excel.XLSheet Sheet = Book.Sheets[0]; // 引用工作簿的第一个工作表 C1.C1Excel.XLStyle Style = new C1.C1Excel.XLStyle(Book); // 新建一个样式 Style.BackColor = Color.Red; // 样式的背景颜色设为红色 for (int j = 0; j <= dt.DataCols.Count - 1; j++) // 添加列标题 { Sheet[0, j].Value = dt.DataCols[j].Name; } for (int i = 0; i <= dt.DataRows.Count - 1; i++) // 填入数据 { for (int j = 0; j <= dt.DataCols.Count - 1; j++) { Sheet[i + 1, j].Value = dt.DataRows[i][j]; } } // 保存Excel Book.Save(@"D:\abc.xls"); // 打开Excel Process.Start(@"D:\abc.xls"); |
如果我们希望用更简单的方法将DataTableHelp中的数据导出到Excel文件中去的话,可以直接使用ToExcel这个扩展方法。
Vb.Net |
Dim db As Database = Proj.SysDataFactory("UserDB") Dim strCmd As String = "select 人员编码,姓名,部门,Count(人员编码) as 计数 from 人员信息 where 部门='安检科' group by 人员编码,姓名,部门" Dim dt As DataTableHelp = db.ExecuteDataTableHelp(strCmd) Dim dlg As SaveFileDialog = New SaveFileDialog() dlg.Filter = "Excel|*.xlsx" If dlg.ShowDialog = DialogResult.OK Then dt.ToExcel(dlg.FileName) End If |
C# |
Database db = Proj.SysDataFactory["UserDB"]; string strCmd = "select 人员编码,姓名,部门,Count(人员编码) as 计数 from 人员信息 where 部门='安检科' group by 人员编码,姓名,部门"; DataTableHelp dt=db.ExecuteDataTableHelp(strCmd); SaveFileDialog dlg = new SaveFileDialog(); // 定义一个新的SaveFileDialog dlg.Filter = "Excel|*.xlsx"; // 设置筛选器 if (dlg.ShowDialog == DialogResult.OK) { dt.ToExcel(dlg.FileName); } |