Member 12564915 Ответов: 2

Как я буду экспортировать данные из listview в excel и pdf в VB.NET


Добрый день, ребята!

Могу я попросить вас о помощи? :) Мой вопрос заключается в том, как я буду экспортировать данные из listview в excel и PDF напрямую, не используя базу данных или отчет crystal. Есть ли какой-то возможный способ, которым я могу это сделать?

Спасибо! :)

Пожалуйста, проверьте наличие изображения в ссылке ниже

1. Просмотр изображения: listview в excel и pdf[^]

Что я уже пробовал:

Я попробовал использовать crystal report и отлично работает, но мне нужно экспортировать его напрямую, не используя стороннюю программу (crystal reports)

2 Ответов

Рейтинг:
13

Garth J Lancaster

Переход от listview к csv - файлу для Excel не так уж и сложен-на самом деле, если вы посмотрите здесь Библиотека FileHelpers[^] вы, вероятно, можете использовать это для 1/2 работы - похоже, вам все еще нужно будет повторить свой listview и построить список объектов, где объект представляет строку и информацию в Столбцах (или, возможно, listview -> DataTable может быть вариантом)

PDF - пара вариантов - вот это да PDF File Writer библиотека классов C# (версия 1.19.0 улучшение: ссылки на документы)[^] или iTextSharp ... Я не могу вспомнить, что библиотека УЗИ использует для форматирования таблицы PDF, но некоторое время, глядя на его примеры, вы можете оптимизировать структуру данных для шага экспорта в csv.

Есть много способов освежевать кошку


Рейтинг:
0

Member 10655931

Public Sub export_me_to_excel(ByVal list As ListView)
    Try
        Dim objExcel As New Excel.Application
        Dim bkWorkBook As Workbook
        Dim shWorkSheet As Worksheet
        Dim chartRange As Excel.Range
        Dim i As Integer
        Dim j As Integer

        objExcel = New Excel.Application
        bkWorkBook = objExcel.Workbooks.Add
        shWorkSheet = CType(bkWorkBook.ActiveSheet, Worksheet)
        shWorkSheet.DisplayRightToLeft = True

        chartRange = shWorkSheet.Range("a1", "e2")
        chartRange.Merge()
        chartRange.FormulaR1C1 = xlval

        chartRange.HorizontalAlignment = 2
        chartRange.VerticalAlignment = 2

        For i = 0 To list.Columns.Count - 1
            shWorkSheet.Cells(5, i + 1) = list.Columns(i).Text
            shWorkSheet.Columns.AutoFit()
            shWorkSheet.Columns.HorizontalAlignment = Excel.Constants.xlCenter
            shWorkSheet.Columns.BorderAround(Excel.XlLineStyle.xlContinuous, Excel.XlBorderWeight.xlMedium, Excel.XlColorIndex.xlColorIndexAutomatic, Excel.XlColorIndex.xlColorIndexAutomatic)

        Next
        For i = 0 To list.Items.Count - 1
            For j = 0 To list.Items(i).SubItems.Count - 1
                shWorkSheet.Cells(i + 6, j + 1) = list.Items(i).SubItems(j).Text
                shWorkSheet.Columns.AutoFit()
                shWorkSheet.Columns.HorizontalAlignment = Excel.Constants.xlCenter
                shWorkSheet.Columns.BorderAround(Excel.XlLineStyle.xlContinuous, Excel.XlBorderWeight.xlMedium, Excel.XlColorIndex.xlColorIndexAutomatic, Excel.XlColorIndex.xlColorIndexAutomatic)

            Next
        Next

        objExcel.Visible = True
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
End Sub


Dave Kreskowiak

Итак, вы написали кусок кода и решили бросить его на все, что упоминает экспорт в Excel из ListView?

Необъяснимые ответы бесполезны.