13 / 13 / 2
Регистрация: 27.11.2011
Сообщений: 697
1

Каждую строку RichTextBox записать в новую ячейку Excel

07.11.2012, 12:41. Показов 2019. Ответов 9
Метки нет (Все метки)

Здравствуйте!!! Такая задачка:
В Excel ячейки надо заполнить фамилиями из RTB по строчно или текстбокс, а ещё также из файла "Фамилии.txt". Помогите!!!
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.11.2012, 12:41
Ответы с готовыми решениями:

В Excel суммировать каждую 4-ю ячейку
Здравстуйте! Подскажите пожалуйста, как в Excel суммировать каждую 4-ю ячейку по вертикали...

Как в datagridview записать текст (поэлементно) в каждую ячейку
как в таблицу в datagridview, 8 на 8 например, записать текст(поэлементно) в каждую ячейку ....

Разбить число на цифры, каждую цифру записать в ячейку массива
Пользователь задает число N с консоли. Программа разбивает полученное число на цифры, получает...

Заносить слово на новую строку Richtextbox
при нажатии на кнопку textbox передает слово в richtextbox. как сделать чтобы при каждой...

9
3 / 3 / 0
Регистрация: 08.02.2012
Сообщений: 15
08.11.2012, 19:43 2
Мне кажется самый оптимальный вариант считывания строк из TextBox, RichTextBox

Пример:
RichTextBox (3 фамилии)
Кнопка

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 Private Declare Function SendMessage Lib "user32" _
   Alias "SendMessageA" (ByVal hwnd As Integer, _
   ByVal wMsg As Integer, _
   ByVal wParam As Integer, ByVal lParam As String) As Integer
 
    Private Function GetLine(ByVal hWnd As Integer, ByVal Line As Integer) As String
        Dim sBuf As String, nLen As Integer, nIndex As Integer, GetString As String
        nIndex = SendMessage(hWnd, EM_LINEINDEX, Line - 1, 0)
        If nIndex < 0 Or Line <= 0 Then
            GetLine = ""
            Exit Function
        End If
 
        nLen = SendMessage(hWnd, EM_LINELENGTH, nIndex, 0)
        sBuf = Space(nLen + 1)
        Mid$(sBuf, 1, 1) = Chr(nLen And &HFF) 
        Mid$(sBuf, 2, 1) = Chr(nLen \ 256)
        SendMessage(hWnd, EM_GETLINE, Line - 1, sBuf)
        GetString = sBuf.Substring(0, nLen)
         Return GetString
    End Function
 
 Private Sub btnExcel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExcel.Click
 
'создаем Excel    
Dim xlApp As Object = CreateObject("Excel.application")
        Dim xlBook As Object = xlApp.Workbooks.Add
        Dim xlSheet As Object = xlBook.Worksheets.Item(1)
        xlApp.Visible = True
        xlBook.Activate()
 
'заполняем ячейки
        xlSheet.Range("A1").Value = GetLine(RichTextBox1.Handle, 1) 'первая строка
        xlSheet.Range("B1").Value = GetLine(RichTextBox1.Handle, 2) 'Вторая строка
        xlSheet.Range("C1").Value = GetLine(RichTextBox1.Handle, 3) 'третья строка
 
 
    End Sub
А дальше можно вариантить как угодно.
1
13 / 13 / 2
Регистрация: 27.11.2011
Сообщений: 697
08.11.2012, 20:07  [ТС] 3
А если в RTB 100 строк, их все записывать?? Или можно в цикле?? И что-то с функцией не получается... и ему не нравится EM_LINELENGTH...

Добавлено через 8 минут
Mid$(sBuf, 2, 1) = Chr(nLen / 256) - на этой строке выдаёт ошибку...
0
Почетный модератор
21366 / 9100 / 1082
Регистрация: 11.04.2010
Сообщений: 11,014
08.11.2012, 20:29 4
А куда без циклов?

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    Dim appExcel As Object
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        appExcel = CreateObject("Excel.Application")
        appExcel.Workbooks.Open("C:\1.xls")
        appExcel.Visible = False
        With appExcel.ActiveSheet
            For I As Integer = 0 To RichTextBox1.Lines.Length - 1
                .cells(I + 10, 2).Value = RichTextBox1.Lines(I)
            Next
        End With
        appExcel.Workbooks(1).Close(True)
        appExcel.Quit()
    End Sub
1
13 / 13 / 2
Регистрация: 27.11.2011
Сообщений: 697
08.11.2012, 22:42  [ТС] 5
Спасибо Памирычу!!! Хорошо работает код, без лишних движений, лишних строчек. Не примите за дерзость. Ещё вопросик. Как сделать тоже фамилии, но только записать их из файла "Фамилии.txt" в RTB и в файл Excel???? СПАСИБО!!!
0
Почетный модератор
21366 / 9100 / 1082
Регистрация: 11.04.2010
Сообщений: 11,014
09.11.2012, 06:17 6
Можно сделать проще, сначала загрузить в RichTextBox, а с него читать.
Код будет тот же, только добавить
VB.NET
1
         RichTextBox1.Text = IO.File.ReadAllText("C:\1.txt", System.Text.Encoding.Default)
1
13 / 13 / 2
Регистрация: 27.11.2011
Сообщений: 697
09.11.2012, 08:58  [ТС] 7
а как из файла в Excel?????????????????
0
Почетный модератор
21366 / 9100 / 1082
Регистрация: 11.04.2010
Сообщений: 11,014
09.11.2012, 09:36 8
Так же просто:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    Dim appExcel As Object
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Lines() As String = IO.File.ReadAllLines("C:\1.txt", System.Text.Encoding.Default)
        appExcel = CreateObject("Excel.Application")
        appExcel.Workbooks.Open("C:\1.xls")
        appExcel.Visible = False
        With appExcel.ActiveSheet
            For I As Integer = 0 To Lines.Length - 1
                .cells(I + 10, 2).Value = Lines(I)
            Next
        End With
        appExcel.Workbooks(1).Close(True)
        appExcel.Quit()
    End Sub
1
13 / 13 / 2
Регистрация: 27.11.2011
Сообщений: 697
09.11.2012, 11:55  [ТС] 9
Спасибо, Вы настоящий друг!!!!!

Добавлено через 14 минут
Подскажите, если надо из файла в RTB фамилии, которые начинаются на гласную букву, или с определённой буквы, то как???
0
Почетный модератор
21366 / 9100 / 1082
Регистрация: 11.04.2010
Сообщений: 11,014
09.11.2012, 11:57 10
Это вопрос уже другой темы.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.11.2012, 11:57
Помогаю со студенческими работами здесь

RichTextBox Перенос текста на новую строку
Вечер добрый, есть затруднение с реализацией, нуждаюсь в помощи. Есть RichTextBox, и в нем есть...

Как в RichTextBox программно создать новую строку
Простите за столь примитивный вопрос, но как в RichTextBox программно создать новую строку?:mda:

Упорядочить строку по возрастанию, записать в новый текстовый файл новую строку цифр
Создать текстовый файл,который имеет в себе строку цифр.Упорядочить строку по возрастанию,записать...

Перевод на новую строку в RichTextBox после каждого третьего введенного числа
Чёт я туплю, вроде просто, но не выходит сделать. For i = 0 To n - 1 RichTextBox1.Text += Str(i)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru