Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB .NET > Excel and VB.net


Автор: Alexey2006 5.3.2006, 17:05
Вопрос уже обсуждался но везде с разными ньюансами и я в итоге так и не смог понять как сделать такую простую вещь.

Вопрос следующий:
в программе есть массив данных, его нужно передать в новый excel-файл
есть excel файл нужно переменной в программе присвоить значение из определённой ячейки.

Помогите пожалуйста, очень надо. Я готов отблагодарить советчика материально - допустим купить ему карту оплаты мобильной связи на 5 ед.

Автор: Exception 5.3.2006, 21:23
Приветствую smile ! Что значит "передать массив данных в новый файл"? Каких данных? И вообще, можно узнать, что конкретно непонятно?

Автор: Exception 5.3.2006, 21:41
Может быть, поможет?
http://forum.vingrad.ru/index.php?showtopic=22683

Автор: Alexey2006 6.3.2006, 11:01
Здравствуй Exception
Ссылка примерно то что нужно но чуть чуть не то

Вот суть моей проблемы:
в программе есть двумерный массив , в котором хранятся различные коэффициенты (Single). Его нужно передать в Excel
Потом в excel можно изменить эти коэффициенты и тогда программа будет брать значения этих коэффициентов не из своего массива, а из excel файла.
Сама программа простейшая - "продвинутый калькулятор". Она уже работает но пока не обращается к excel, это как одна из возможностей которую я хочу реализовать.

я понял что для работы с excel необходимо подключить пространнство имён (какое именно, их огромное количество для офиса ?)
также понял что нужно создать oledb соединение и тогда будет возможность обратится к файлу, но все примеры завязаны на dataset я же его не использую.

Вообщем буду премного благодарен за код такой простой программы:
1. кликаем по кнопке она создаёт excel-файл и передаёт button.text в первую ячейку
2. кликаем по второй кнопке она выдаёт messagebox.show("то что написано в заданной ячейке excel файла")

дальше я уже сам смогу разобраться

Кстати я использую vb.net 202005

Благодарю за внимание

Автор: Exception 6.3.2006, 14:21
Должен работать такой код:
Код

Imports Microsoft.Office.Interop.Excel

Public Class Main

    Private _xlApplication As New Application
    Private _xlWorkBook As Workbook = _xlApplication.Workbooks.Open("E:\ExcelFile.xls")
    Private _xlWorksheet As Worksheet = CType(_xlWorkBook.Worksheets(1), Microsoft.Office.Interop.Excel.Worksheet)



    Private Sub Read_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Read.Click
        MessageBox.Show(CStr(_xlWorksheet.Range("A1").Value2), "Текст ячейки A1", MessageBoxButtons.OK, MessageBoxIcon.Information)
    End Sub


    Private Sub Write_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Write.Click
        _xlWorksheet.Range("A1").Value2 = TextToWrite.Text
    End Sub
End Class


Автор: Alexey2006 6.3.2006, 15:02
УРА ! Вопрос решён !!!

to Exception:
Код

    Private _xlApplication As New Application
    Private _xlWorkBook As Workbook = _xlApplication.Workbooks.Open("E:\ExcelFile.xls")
    Private _xlWorksheet As Worksheet = CType(_xlWorkBook.Worksheets(1), Microsoft.Office.Interop.Excel.Worksheet)


здесь VB ругается на:
Private _xlApplication
As Workbook
As Worksheet

почему я не понял, и дальше он на TextToWrite тоже ругается :-(

Но вопрос всё таки решил, Для тех кому интересно:
поставил ComponentOne Studio for .NET 2005 v3
там в комплекте был компонент- С1XLBook с его помощью всё сделал, благо есть примеры правда на С#
вот то что написал я
Код

Public Class Form1

    Private book As New C1.C1Excel.C1XLBook
    Private sheet22 As C1.C1Excel.XLSheet = book.Sheets(0)
    Private cell As C1.C1Excel.XLCell = sheet22(0, 0)
    Private fn As String = "c:\qwe.xls"
    Private style2 As New C1.C1Excel.XLStyle(book)

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        sheet22.Name = "[censored 8] неужели получится"

        style2.Font = New Font("Tahoma", 11, FontStyle.Bold)
        style2.ForeColor = Color.Blue

        cell.Value = "Работает !!!"
        cell.Style = style2

        book.Save(fn)
        System.Diagnostics.Process.Start(fn)
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        book.Load(fn)
        MessageBox.Show(cell.Value)
    End Sub
End Class



to Exception
Благодарю за внимание (хотя если не сложно может скажи почему у меня твой код не заработал, что я ещё не подключил?)!

отправь мне на мыло свой номер мобильного и оператора, я тебе скину смс с кодом карты оплаты, как и обещал
smile

Автор: Exception 6.3.2006, 15:25
Цитата(Alexey2006 @ 6.3.2006, 16:02 Найти цитируемый пост)
здесь VB ругается на:
Private _xlApplication
As Workbook
As Worksheet

Ты напиши
Код

Imports Microsoft.Office.Interop.Excel

и Microsoft Excel Object Library подключи (Add Reference -> COM). Должно работать.
Цитата(Alexey2006 @ 6.3.2006, 16:02 Найти цитируемый пост)
и дальше он на TextToWrite тоже ругается

Добавь на форму кнопки Write, Read и текстбокс TextToWrite smile
Цитата(Alexey2006 @ 6.3.2006, 16:02 Найти цитируемый пост)
отправь мне на мыло свой номер мобильного и оператора, я тебе скину смс с кодом карты оплаты, как и обещал

Чего уж там smile ? Форум на то и нужен, чтобы бесплатно друг другу помогать...

Автор: Exception 6.3.2006, 15:55
http://vingrad.ru/NET-VBNET-003016
уффф... smile

Автор: Alexey2006 6.3.2006, 16:59
ну про кноки и Imports Microsoft.Office.Interop.Excel эт понятно smile
а вот Microsoft Excel Object Library я не подключил

Спасибо ещё раз, а за статью отдельно !

теперь всё заработало, и без всяких плагов, Круть ! smile

Автор: Exception 6.3.2006, 20:53
Рад помочь, заходи ещё smile !

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)