“.xlsm”这种带宏的格式写不了,能写的那两种是文件覆盖式的写入,因为原有工作簿的其他工作表都被删除了。看来是系统的问题。下面是我改的代码,斜体,加黑是去掉不要的:
Dim dt As Table = Tables("表A")
Dim Book As New XLS.Book '定义一个Excel工作簿
Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
'Dim Style As Xls.Style = Book.NewStyle '新建一个样式
'Style.BackColor = Color.Red '样式的背景颜色设为红色
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
'If dt.rows(r)("折扣") >= 0.15 Then '如果折扣大于等于0.15
'Sheet(r + 1,dt.Cols("折扣").Index).Style = Style '设置折扣单元格的样式
'End If
Next
'打开工作簿
Book.Save("c:\reports\test.xls")
'Dim Proc As New Process 后三行不要,不打开文件写入
'Proc.File = "c:\reports\test.xls"
'Proc.Start()