#vb.net
#vb.net
Вопрос:
Я получаю сообщение об ошибке из этой строки xlWorkSheet.Ячейки (i 1, j 1) = dataGridView1(j, i).Значение.toString () ошибка говорит о том, что ячейка свойства bc30526 доступна только для чтения. как можно настроить это?
Dim xlApp As Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
Dim misValue As Object = System.Reflection.Missing.Value
Dim i As Integer
Dim j As Integer
xlApp = New Excel.ApplicationClass
xlWorkBook = xlApp.Workbooks.Add(misValue)
xlWorkSheet = xlWorkBook.Sheets("sheet1")
For i = 0 To DataGridView1.RowCount - 2
For j = 0 To DataGridView1.ColumnCount - 1
xlWorkSheet.Cells(i 1, j 1) = DataGridView1(j, i).Value.ToString()
Next
Next
xlWorkSheet.SaveAs("C:vbexcel.xlsx")
xlWorkBook.Close()
xlApp.Quit()
Комментарии:
1. Я думаю, что проблема не требует описания. Похоже, проблема в том, что вы пытаетесь изменить значение ячейки, присвоив ячейке, что библиотека взаимодействия не позволит вам сделать. Я думаю, вам нужно назначить
Value
.2. @Craig, как? пожалуйста, отправьте свой ответ
3. Повторите исключение nullrefexception, я бы предложил задать для этого новый вопрос. Вы делаете что-то не совсем так, как я, но не очевидно, что разница неправильная.
4. @Craig, о, хорошо, я просто надеюсь, что ты сможешь помочь мне с этой новой ошибкой, но все равно спасибо. я постараюсь сделать все возможное, чтобы настроить это…
Ответ №1:
Это почти наверняка должно быть,
xlWorkSheet.Cells(i 1, j 1).Value = DataGridView1(j, i).Value.ToString()
Как написано, вы пытаетесь присвоить строку a Cell
; это не сработало бы, даже если бы она не была доступна только для чтения.
Это может отличаться от VBA. Я думаю, что VBA позволяет Value
удалять их с помощью свойств по умолчанию. Я не думаю, что это то, что все еще существует в .NET, за исключением индексаторов (возможность отказаться Item
от доступа к коллекции).
Комментарии:
1. Исключение System.NullReferenceException: «Переменная объекта или с переменной блока не установлена».