Выравнивание выходных данных по различным столбцам в списке

#vb.net #listbox

#vb.net #список

Вопрос:

Я получил нужные мне результаты из элемента управления Listview. Теперь я хотел бы экспортировать данные в текстовый файл / excel, а затем загрузить их обратно в элемент управления listview, когда мне это нужно. Я знаю, как выполнить обе эти задачи, используя элемент управления listbox, но listview для меня новый. Я часами изучал и играл с кодом, но я продолжаю получать ту или иную ошибку. Пожалуйста, найдите последнюю версию моего кода для экспорта данных ниже. Кроме того, если бы вы могли предоставить код для импорта, это было бы супер.

 'Export the listview to an Excel spreadsheet

 Dim SaveFileDialog1 As New SaveFileDialog
 SaveFileDialog1.Title = "Save Excel File"
 SaveFileDialog1.Filter = "Excel files (*.xls)|*.xls|Excel Files 
 (*.xlsx)|*.xslx"
 SaveFileDialog1.ShowDialog()

    'exit if no file selected
  If SaveFileDialog1.FileName = "" Then
   Exit Sub
  End If

   'create objects to interface to Excel
 Dim xls As New Excel.Application
 Dim book As Excel.Workbook
 Dim sheet As Excel.Worksheet
 Dim placeholder As String

 'create a workbook and get reference to first worksheet
 xls.Workbooks.Add()
 book = xls.ActiveWorkbook
 sheet = book.ActiveSheet

 'step through rows and columns and copy data to worksheet

    Dim row As Integer = 1
    Dim col As Integer = 1

    For Each item As ListViewItem In lstViewUsers.Items
        For i As Integer = 0 To item.SubItems.Count - 1
            placeholder = sheet.Cells(row, col) = item.SubItems(i).Text
            col = col   1
        Next
        row  = 1
        col = 1
    Next

    'save the workbook and clean up

    book.SaveAs(SaveFileDialog1.FileName)
    xls.Workbooks.Close()
    xls.Quit()



End Sub
 

Комментарии:

1. Не могли бы вы рассмотреть возможность использования ListView или DataGridView ?

2. Список может устанавливать жесткие (позиции пикселей) табуляции, но это того не стоит. Используйте ListView в представлении сведений, добавьте столбцы, необходимые для представления ваших данных.

3. Если я правильно понял, вы пытаетесь выровнять текст по количеству символов, это сработает, только если все символы имеют одинаковую ширину, но это не так, например, WWWW больше, чем IIII, поэтому вам нужно думать в пикселях, что будет более правильным, чем text .length . итак, как было сказано ранее, лучше использовать DataGridView, это сэкономит ваше время.

4. Если вы хотите выровнять текст по символам, вам нужно использовать шрифт фиксированной ширины. Кроме того, способ, которым вы это делаете, изворотлив. Читать это .

5. Я использовал ListView, и он работал отлично. Спасибо, ребята! Ты потрясающий!