老师,窗口中有一个副本表,以下是查询代码 Dim DA1 As Date = e.Form.Controls("DateTimePicker1").VALUE
Dim DA2 As Date = e.Form.Controls("DateTimePicker2").VALUE
Dim b As New CrossTableBuilder("统计表1",DataTables("整车返利录入表"))
b.Filter ="[开piao日期] >= #" & DA1 & "# And [开piao日期] <= #" & DA2 & "#"
b.HGroups.AddDef("开piao日期" ,DateGroupEnum.Day.None) '添加客户列用于水平分组
b.HGroups.AddDef("结算日期",DateGroupEnum.Day.None) '添加客户列用于水平分组
b.HGroups.AddDef("客户姓名") '添加客户列用于水平分组
b.HGroups.AddDef("车型") '添加客户列用于水平分组
b.HGroups.AddDef("VIN码") '添加客户列用于水平分组
b.HGroups.AddDef("进货类型") '添加客户列用于水平分组
b.VGroups.AddDef("返利名称") '添加产品列用于垂直分组
b.Totals.AddDef("返利金额") '添加数量列用于统计
b.VerticalTotal= True '垂直汇总
b.HorizontalTotal = True '水平汇总
b.Decimals = 2
Tables("查询 返利窗口_Table1").DataSource = b.builddatasource
Tables("查询 返利窗口_Table1").AutoSizeCols() '自动设置所有列的宽度
因为“返利名称”是不固定的,不同的车型“返利名称“有所不同,不同时期“返利名称“也有所不同,因此,导出的代码中没有指定列名称,代码如下:
If Tables("查询 返利窗口_Table1").rows.count > 0 Then
Dim dt As Table = Tables("查询 返利窗口_Table1")
Dim Book As New XLS.Book '定义一个Excel工作簿
Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
Dim Style As Xls.Style = Book.NewStyle '新建一个样式
For c As Integer = 0 To dt.Cols.Count -1 '添加列标题
Sheet(0, c).Value = dt.Cols(c).Name
Next
For r As Integer = 0 To dt.Rows.Count - 1 '填入数据
For c As Integer = 0 To dt.Cols.Count -1
Sheet(r +1, c).Value = dt.rows(r)(c)
Next
Next
Dim St2 As XLS.Style = Book.NewStyle
St2.Format = "yyyy-MM-dd"
Sheet.Cols(dt.Cols("开piao日期").Index).Style = st2
Sheet.Cols(dt.Cols("结算日期").Index).Style = st2
Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
dlg.Filter= "Excel文件|*.xls" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then
Book.Save(dlg.FileName)
Dim Proc As New Process
Proc.File = dlg.FileName
Proc.Start()
End If
Else
MessageBox.Show("没有要导出的数据,请重试刷新")
e.Cancel = True
End If
请教:以上的导出代码导出数据的列名称为:返利金额1;返利金额2.....如何能实现,导出的表中体现窗口表的 “实际列标题“,也就是以”返利名称“为列标题