从每列中搜索并删除“00:00”值

李忠

我试图让我的代码通过每个 DateTime 列并搜索包含“00:00”作为小时和分钟的单元格。如果该值存在,则删除 00:00 并仅保留日期。对于不包含该值的单元格,将单元格保持原样。例如,如果“3/22/2017 00:00”,则将其格式化为“3/22/2017”。否则,如果是“3/22/2017 09:16”,请不要管它。先感谢您!

dataGrid.DataSource = dataSet.Tables(0)
dataGrid.DataBind()
ws.Cells(1, 1).LoadFromDataTable(dataGrid.DataSource, True)
Dim data = dataGrid.DataSource
Dim columnCount = data.Columns.Count
For i = 0 To columnCount - 1
    If data.Columns(i).DataType Is GetType(DateTime) Then
        If Not data.Columns(i).ToString.Contains("00:00") Then
            ws.Column(i + 1).Style.Numberformat.Format = "mm/dd/yyyy hh:mm"
        Else
            ws.Column(i + 1).Style.Numberformat.Format = "mm/dd/yyyy"
        End If
    End If
Next
给你

这可以通过以下方式实现:

  1. 为所有设置默认格式DateTime
  2. 覆盖满足条件的值的默认格式。

这是一个处理多DateTime的简单辅助方法

Sub SetDateTimeStyles(ByRef data As DataTable, ByRef ws As ExcelWorksheet)
    ' Track DateTime columns to override default column style
    Dim dateTimeColumns = New List(Of Integer)()

    ' Set column format
    Dim columnCount = data.Columns.Count
    For i = 0 To columnCount - 1
        If data.Columns(i).DataType Is GetType(DateTime) Then
            Dim epPlusColumn = i + 1
            ws.Column(epPlusColumn).Style.Numberformat.Format = "mm/dd/yyyy hh:mm"
            dateTimeColumns.Add(epPlusColumn)
        End If
    Next

    ' Header row exists; set to 1 if no header row
    Dim rowOffset = 2
    Dim rowCount = data.Rows.Count

    ' Only set cell format when hour and minute are **both** zero
    For i = 0 To rowCount - 1
        For Each dateTimeColumn In dateTimeColumns
            Dim value As DateTime = data(i)(dateTimeColumn - 1)
            If value.Hour = 0 AndAlso value.Minute = 0 AndAlso value.Second = 0 Then
                ws.Cells(i + rowOffset, dateTimeColumn) _
                    .Style.Numberformat.Format = "mm/dd/yyyy"
            End If
        Next
    Next
End Sub

并在创建 Excel 文件时调用它:

dataGrid.DataSource = dataSet.Tables(0)
dataGrid.DataBind()
ws.Cells(1, 1).LoadFromDataTable(dataGrid.DataSource, True)
Dim data As DataTable = dataGrid.DataSource
SetDateTimeStyles(data, ws)

结果:

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

日期时间值不正确:列的“0000-00-00 00:00:00”

来自分类Dev

HWaddr值00-00-00 ....是什么意思?

来自分类Dev

HWaddr值00-00-00 ....是什么意思?

来自分类Dev

SQL值列表00:00至24:00

来自分类Dev

如何将字段的默认值设置为“ 0000-00-00 00:00:00”?

来自分类Dev

Google Spreadsheet将我的值从00:00更改为00:00:00

来自分类Dev

MySQL导入将时间戳的空值转换为0000-00-00 00:00:00

来自分类Dev

MySQL导入将时间戳的空值转换为0000-00-00 00:00:00

来自分类Dev

需要在 DatePicker 日期值中设置时间值 00:00:00

来自分类Dev

如何使用python为同一列中包含的相同值设置00:00:00的时间

来自分类Dev

日期变量在VB 6.0中将默认值显示为00:00:00

来自分类Dev

php date & strtotime 函数产生 1970-00-00 00:00 值

来自分类Dev

util.JDBCExceptionReporter值'0000-00-00 00:00:00'不能表示为java.sql.Timestamp

来自分类Dev

Java getDate 0000/00/00返回奇怪的值

来自分类Dev

#1292-错误的日期值:“ 0000-00-00”

来自分类Dev

React Native:将TextInput值设置为00:00

来自分类Dev

从0:00:00类型值开始分钟

来自分类Dev

INSERT GETDATE() 但它插入值 0000-00-00

来自分类Dev

格式化datetime变量可将丢失的时间值设为00:00:00。使用Python

来自分类Dev

MS访问:当字段可能包含00:00:00时,查询的最大值(日期/时间字段)

来自分类Dev

Java的8 LocalDateTime与00秒像“2018年7月6日00:00:00”解析日期字符串值时下降00秒值

来自分类Dev

熊猫-删除每列中的重复值

来自分类Dev

MySql计算日期行中包含(NULL)和'0000-00-00'值的所有元组

来自分类Dev

检查数组中是否有不同于 0000-00-00 的值

来自分类Dev

来自 html 形式的 Mysql 数据库中记录为 0000-00-00 的日期值

来自分类Dev

使用Powershell将xml中的'.00'替换为空白值

来自分类Dev

如何从日期时间类型中删除 00:00:00.000?

来自分类Dev

机器码中的00 00 00 00 00 00等是什么意思?

来自分类Dev

如何从列表中删除“ \ x00”

Related 相关文章

  1. 1

    日期时间值不正确:列的“0000-00-00 00:00:00”

  2. 2

    HWaddr值00-00-00 ....是什么意思?

  3. 3

    HWaddr值00-00-00 ....是什么意思?

  4. 4

    SQL值列表00:00至24:00

  5. 5

    如何将字段的默认值设置为“ 0000-00-00 00:00:00”?

  6. 6

    Google Spreadsheet将我的值从00:00更改为00:00:00

  7. 7

    MySQL导入将时间戳的空值转换为0000-00-00 00:00:00

  8. 8

    MySQL导入将时间戳的空值转换为0000-00-00 00:00:00

  9. 9

    需要在 DatePicker 日期值中设置时间值 00:00:00

  10. 10

    如何使用python为同一列中包含的相同值设置00:00:00的时间

  11. 11

    日期变量在VB 6.0中将默认值显示为00:00:00

  12. 12

    php date & strtotime 函数产生 1970-00-00 00:00 值

  13. 13

    util.JDBCExceptionReporter值'0000-00-00 00:00:00'不能表示为java.sql.Timestamp

  14. 14

    Java getDate 0000/00/00返回奇怪的值

  15. 15

    #1292-错误的日期值:“ 0000-00-00”

  16. 16

    React Native:将TextInput值设置为00:00

  17. 17

    从0:00:00类型值开始分钟

  18. 18

    INSERT GETDATE() 但它插入值 0000-00-00

  19. 19

    格式化datetime变量可将丢失的时间值设为00:00:00。使用Python

  20. 20

    MS访问:当字段可能包含00:00:00时,查询的最大值(日期/时间字段)

  21. 21

    Java的8 LocalDateTime与00秒像“2018年7月6日00:00:00”解析日期字符串值时下降00秒值

  22. 22

    熊猫-删除每列中的重复值

  23. 23

    MySql计算日期行中包含(NULL)和'0000-00-00'值的所有元组

  24. 24

    检查数组中是否有不同于 0000-00-00 的值

  25. 25

    来自 html 形式的 Mysql 数据库中记录为 0000-00-00 的日期值

  26. 26

    使用Powershell将xml中的'.00'替换为空白值

  27. 27

    如何从日期时间类型中删除 00:00:00.000?

  28. 28

    机器码中的00 00 00 00 00 00等是什么意思?

  29. 29

    如何从列表中删除“ \ x00”

热门标签

归档