#excel #vb.net #webforms
#excel #vb.net #веб-формы
Вопрос:
Я должен отобразить лист Excel в ListBox в VB.net . До сих пор мне удавалось отображать первый столбец. Я использовал зоны для форматирования двух столбцов. Вот мой код для этой части:
Dim fmtStr As String = "{0,15}, {1,15}"
Затем у меня есть этот код для отображения в ListBox:
For i = 0 To AscW(ListBox1.Items.Count.ToString()(i = i 1)) - 1
cella = "A" amp; Convert.ToString(i 1)
cellb = "B" amp; Convert.ToString(i 1)
cella = aSheet.Range(cella).Value
cellb = aSheet.Range(cellb).Value
ListBox1.Items.Add(String.Format(fmtStr, "1", "2"))
If cella = "" Or cellb = "" Then
ListBox1.Items.Add("")
Else
ListBox1.Items.Add(String.Format(fmtStr, cella, cellb))
End If
Я получаю ошибки во время запуска.. Есть ли другой способ отображения столбцов рядом?
ОБНОВЛЕНИЕ: Все работает нормально, но вывод получается беспорядочным, вот так: Изображение
Комментарии:
1. Я не знаком с кодом в
For
строке. Что вы пытаетесь сделать?For i = 0 To ListBox1.Items.Count - 1
Затем вы делаете назначения дляcella
иcellb
. Затем вы переназначаете эти две переменные в следующих 2 строках. Зачем делать первое назначение, если они будут перезаписаны немедленно?2. Используйте отладчик для пошагового выполнения. Раздельное чтение значений и внесение их в список. Выясните, допущена ли ошибка при чтении значений или при заполнении списка.
ListBox1.Items.Add(..)
ПередIf
, безусловно, выглядит подозрительно для меня…3. Ваш
frmStr
указывает индекс 0 и индекс 2. ЗатемString.Format(fmtStr, "1", "2")
предоставляет вставки для индексов 0 и 1.4. @Mary это найденный мной учебник, в который я внес некоторые коррективы..
5. Итак, сейчас все работает нормально, но расположение столбцов действительно беспорядочное. Есть ли способ привести это в порядок?
Ответ №1:
ListBox1.Font = New System.Drawing.Font("Consolas", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))