Previous topicNext topic
Help > 开发指南 > Excel > C1Excel >
用代码将DataTableHelp转化成Excel

以下为纯代码自己将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);
}