以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 数据未填入对应的单元格 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=196553) |
-- 作者:1234567 -- 发布时间:2025/5/12 17:58:00 -- 数据未填入对应的单元格 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
|
-- 作者:有点蓝 -- 发布时间:2025/5/12 19:57:00 -- 什么地方有问题?生成什么结果,正确的结果是什么? |