Убрать время при экспорте в pdf - PullRequest
0 голосов
/ 28 мая 2020

В моем datagridview нет времени в столбце datePurchased. Но когда я экспортировал его в PDF, он уже включает время. Мне нужна только дата, а не время. Ниже приведен пример кода

 //For exporting to pdf

      Private Sub ExportButton_Click(sender As Object, e As  EventArgs) Handles ExportButton.Click
  connection.Close()
  connection.Open()

  Dim pdfTable As New PdfPTable(ReportDataGridView.ColumnCount)
  pdfTable.DefaultCell.Padding = 1
  pdfTable.WidthPercentage = 100
  pdfTable.DefaultCell.HorizontalAlignment = Element. ALIGN_CENTER

  Dim ptable As New  Font(iTextSharp.text.Font.FontFamily.HELVETICA, 11, iTextSharp.text.Font.BOLD, BaseColor.BLACK)

    For Each column As DataGridViewColumn in ReportDataGridView.Columns
  Dim cell as new PdfPCell(New Phrase(New Chunk(column.HeaderText, ptable)))
  cell.HorizontalAlignment = Element.ALIGN_CENTER
  cell.FixedHeight = 30
  pdfTable.AddCell(cell)

  Next

    For Each row as DataGridViewRow In ReportDataGridView.Rows
  For each cell as DataGridViewCell In row.Cells
  pdfTable.AddCell(cell.Value.ToString)
  Next
  Next

 Dim folderpath As String = "C:\PDFs\"
 If Not Directory.Exists(folderpath) Then
      Directory.CreateDirectory(folderpath)
 End If

  Using sfd as New 
SaveFileDialog()
 sfd.ShowDialog()
 sfd.OverWritePrompt = True
 sfd.Title =" Save As"
 sfd.AddExtension = True
 sfd.DefaultExt = ".pdf"

  Using stream As New FileStream(sfd.FileName & ".pdf", 
   FileMode.Create)
  Dim pdfdoc As New 
  Document (PageSize.LETTER, 36.0F, 36.0F,36.0F,36.0F)
  PdfWriter.GetInstance(pdfdoc.stream)
  pdfdoc.Open()
  pdfdoc.Add(pdfTable)
  pdfdoc.Close()
  stream.Close()
  If File.Exists("path") Then
       File.AppendAllText("path", "contents")
   End If
  pdfdoc.Close()
  stream.Close()
  End Using

  End Using
  End Sub

. Если вы спросите меня, какой тип данных у DatePurchased, это дата. Я использовал дату, а не дату и время. Пожалуйста, помогите!

1 Ответ

0 голосов
/ 28 мая 2020

Вам нужно будет определять даты и явно форматировать без времени, например

For each cell as DataGridViewCell In row.Cells
    Dim cellValue = cell.Value

    pdfTable.AddCell(If(TypeOf cellValue Is Date,
                        CDate(cellValue).ToShortDateString(),
                        cellValue.ToString()))
Next
...