Dim t As DataTable = DataTables("考勤明细")
Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Add
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
app.ActiveWindow.SplitColumn = 3
app.ActiveWindow.SplitRow = 3
app.ActiveWindow.FreezePanes = True
ws.cells.rowheight = 20
ws.cells.Columnwidth = 10
ws.cells(1, 1).Columnwidth = 15
ws.cells(2, 1).Value = "序号"
ws.cells(2, 2).Value = "姓名"
Dim d1 As Date = #3/20/2025#
Dim d2 As Date = #4/21/2025#
Dim cs As Integer = 3
Do While d1 <= d2
If d1.DayOfWeek = 0 Then
ws.cells(2, cs).Value = "周日"
ws.cells(2, cs).Font.ColorIndex = 3
Else
ws.cells(2, cs).Value = d1 & " "
End If
cs += 1
d1 = d1.AddDays(1)
Loop
Dim strs As List(Of String) = t.GetValues("姓名")
For i As Integer = 0 To strs.count - 1
ws.cells(i + 3, 2).Value = " " & strs(i) & " "
Do While d1 <= d2 '
Dim drlist As List(Of DataRow) = t.Select("姓名='" & strs(i) & "' and 日期=#" & d1 & "#")
Dim ss As String = ""
Dim idxs As String = "-1,"
If drlist.count > 0 Then
For Each dr As DataRow In drlist
ss = ss & "," & dr("数据")
idxs &= dr("_Identify") & ","
Next
End If
Dim idx As Integer = ss.length
drlist = t.Select("姓名='" & strs(i) & "' and 日期=#" & d1 & "# and _Identify not in (" & idxs.trim(",") & ")")
If drlist.count > 0 Then
For Each dr As DataRow In drlist
If dr.IsNull("日期") Then
ss = ss & "," & dr("数据")
End If
Next
End If
ws.cells(i + 3, cs).Value = ss.trim(",")
ws.cells(i + 3, cs).Characters(0, idx).font.ColorIndex = 3
ws.cells(i + 3, cs).Characters(idx).font.ColorIndex = 1
cs += 1
d1 = d1.AddDays(1)
Loop
Next
App.Visible = True