Proidoha 645 / 473 / 38 Регистрация: 04.11.2013 Сообщений: 1,949 |
||||
1 |
||||
12.04.2016, 16:17. Показов 10595. Ответов 19 Метки excel, imports, interop, vba (Все метки)
Доброго времени! Имею на машине Вынь10, VB Express 2010 и 2016 офис.
Как правильно его прикрутить? Гугл мне не помог.
0 |
ViterAlex 8927 / 4839 / 1885 Регистрация: 11.02.2013 Сообщений: 10,246 |
||||
12.04.2016, 16:28 |
2 |
|||
На сайте для кода VB ошибка, в версии для C# всё правильно. Должно быть:
0 |
645 / 473 / 38 Регистрация: 04.11.2013 Сообщений: 1,949 |
|
12.04.2016, 16:53 [ТС] |
3 |
Пробовал. Та же ошибка. Мало того, я в ссылках на вкладке COM не могу найти Microsoft Excel Object Library. Это какая-то фишка 2016 версии, видимо. Добавлено через 10 минут Вот тут говорят, что надо импортировать Microsoft.Office 16.0 Object Library. Только оно не работает — пространство имен не появляется все равно.
0 |
8927 / 4839 / 1885 Регистрация: 11.02.2013 Сообщений: 10,246 |
|
12.04.2016, 16:56 |
4 |
У меня стоит 2016. Всё присутствует. Сначал добавляешь ссылку на библиотеку, затем импортируешь пространство имён Миниатюры
1 |
645 / 473 / 38 Регистрация: 04.11.2013 Сообщений: 1,949 |
|
12.04.2016, 17:35 [ТС] |
5 |
А у меня даже не предлагает interop после microsoft.office. Я вот задумался: может быть причиной express-выпуск студии? Миниатюры
0 |
8927 / 4839 / 1885 Регистрация: 11.02.2013 Сообщений: 10,246 |
|
12.04.2016, 17:54 |
6 |
Microsoft Excel 16.0 Object Library. Не Office
0 |
1083 / 819 / 145 Регистрация: 25.07.2015 Сообщений: 1,812 |
|
12.04.2016, 18:45 |
7 |
Что-то подсказывает , что VS2010 не коннектится с библиотеками 2016 офиса
0 |
8927 / 4839 / 1885 Регистрация: 11.02.2013 Сообщений: 10,246 |
|
12.04.2016, 19:19 |
8 |
Это почему же?
0 |
Модератор 3878 / 3200 / 482 Регистрация: 27.01.2014 Сообщений: 5,841 |
|
12.04.2016, 20:47 |
9 |
у меня все работает. вы не на вкладке COM ищите библиотеку а на вкладке NET.. и еще, смотрите на версию, не выбирайте версию 14.0 так как на машинах где стоит офис 2007-2014 ваша программа не запустится, выбирайте версию 12.0… это значит что начиная с офиса 2007 все последующие будут поддерживаться вашим ПО.
1 |
645 / 473 / 38 Регистрация: 04.11.2013 Сообщений: 1,949 |
|
13.04.2016, 16:42 [ТС] |
10 |
У меня НЕТУ Microsoft Excel 16.0 Object Library ни на вкладке COM, ни на вкладке .NET. Могу скрины выложить. Что-то из области фантастики и сопряжения Win10, Office16 и VS2010. Дома на Вынь7 и 2013 офисе с той же студией все ок — на вкладке .net есть microsoft.office.interop.excel 2 версий — 12 и 14.
0 |
Модератор 3878 / 3200 / 482 Регистрация: 27.01.2014 Сообщений: 5,841 |
|
13.04.2016, 17:22 |
11 |
Сообщение было отмечено Proidoha как решение Решениеа тогда вопрос — а какой у вас офис? не 64 бит случайно? посмотрите по этому пути:
2 |
645 / 473 / 38 Регистрация: 04.11.2013 Сообщений: 1,949 |
|
13.04.2016, 18:12 [ТС] |
12 |
а тогда вопрос — а какой у вас офис? не 64 бит случайно?
Да, Офис «стандартный 2016 х64». Ссылка на требуемый пакет: https://www.microsoft.com/ru-r… x?id=48217
1 |
1706 / 1194 / 227 Регистрация: 23.12.2010 Сообщений: 1,526 |
|
14.04.2016, 07:15 |
13 |
хм… а как же без этих тулов цеплялись в vb6 или в версиях до 2005… Часом, когда ставили офис, не убрали в настройках галку, отвечающую за это? Что-то вроде «поддержка программирования» или как-то так… Я в свое время еще в 2003м офисе сэтим налажал. В итоге написанные уже программы с ним работать могли, а вот в новом проекте добавить ссылку никак нельзя было, и если открыть исходники других проектов — студия ругалась на эти ссылки. Позднее связывание при этом работает.
0 |
Модератор 3878 / 3200 / 482 Регистрация: 27.01.2014 Сообщений: 5,841 |
|
14.04.2016, 08:49 |
14 |
vb6 не видел библиотек от 64-битного офиса. в NET с этим, суда по исходам данной темы, проблем нет… а в vb6 использовался COM объект, в NET же чаще люди используют вспомогательную библиотеку Office.Interop, которая является всего навсего набором констант и тому подобного… своего рода позднее связывание, но дающее помошь в редакторе кода с подсказками от Intellisense… кажется так
0 |
1706 / 1194 / 227 Регистрация: 23.12.2010 Сообщений: 1,526 |
|
14.04.2016, 09:11 |
15 |
vb6 не видел библиотек от 64-битного офиса не, я не в контексте х64. Просто комплекта VSTO ведь не было. Да и потом он уже появился только к 2005 версии, отдельным дистрибутом, а только с 2008й начал по умолчанию ставиться.
0 |
645 / 473 / 38 Регистрация: 04.11.2013 Сообщений: 1,949 |
|
14.04.2016, 13:01 [ТС] |
16 |
Часом, когда ставили офис, не убрали в настройках галку, отвечающую за это? Сисадмины говорят, что никакие галочки не снимали. Нашел похожую тему на форуме: Как подключить microsoft.office.interop.excel Есть еще идеи как бороться с этой бедой?
0 |
Модератор 3878 / 3200 / 482 Регистрация: 27.01.2014 Сообщений: 5,841 |
|
14.04.2016, 19:46 |
17 |
интересно получается. может все дело в Express версии студии? хотя врятли…
0 |
645 / 473 / 38 Регистрация: 04.11.2013 Сообщений: 1,949 |
|
15.04.2016, 15:22 [ТС] |
18 |
Решил беду скачав с домашнего компа полностью папку Visual Studio Tools for Office и подсунув программе нужную библиотеку вручную. Костыль, конечно, но хоть так. Пространство имен появилось, компиляцию пока не пробовал делать.
0 |
19 / 19 / 0 Регистрация: 05.02.2015 Сообщений: 175 |
|
08.09.2016, 16:59 |
19 |
Доброго вечера.
0 |
Модератор 3878 / 3200 / 482 Регистрация: 27.01.2014 Сообщений: 5,841 |
|
08.09.2016, 17:28 |
20 |
Devils, универсальных не бывает, есть только позднее связывание, в котором все рабочие объекты имеют тип Object вместо Excel, Word, Range и так далее.
0 |
- Remove From My Forums
-
Question
-
Hi I am trying to open an excel spreadsheet using a button click event and i use this statement in my code ..i guess the header has to be with the «imports …..» but i am not sure what it is ?
Dim excel As New Microsoft.office.interop.excel.application.class but it underlines the entire statement and says that it is not defined..pls advise..
am i supposed to use a header? if yes? which one ?
KB — Knowledge is Power!
-
Edited by
Friday, August 8, 2008 7:26 PM
edited
-
Edited by
Answers
-
I’ll tell u something funny.. i clicked on project add reference and recent tab and clicked on ms office 11.0 and ms exce 11.0 in that and hit ok and now the microsoft.office.interop comes without any error in my code ! why did that happen ?any idea ?
KB — Knowledge is Power!
-
Marked as answer by
kavita bhaskaran kukkala
Wednesday, August 13, 2008 4:38 PM -
Unmarked as answer by
kavita bhaskaran kukkala
Wednesday, August 13, 2008 4:38 PM -
Marked as answer by
kavita bhaskaran kukkala
Wednesday, August 13, 2008 4:39 PM -
Marked as answer by
kavita bhaskaran kukkala
Wednesday, August 13, 2008 4:39 PM -
Marked as answer by
kavita bhaskaran kukkala
Wednesday, August 13, 2008 4:39 PM -
Marked as answer by
kavita bhaskaran kukkala
Wednesday, August 13, 2008 4:39 PM -
Marked as answer by
kavita bhaskaran kukkala
Wednesday, August 13, 2008 4:39 PM -
Marked as answer by
kavita bhaskaran kukkala
Wednesday, August 13, 2008 4:39 PM
-
Marked as answer by
Blog / Import Excel to Datagridview using C#
In this tutorial, I will show you how to import an excel file to a DataGridview using C#. We are going to be using Microsoft.Office.interop.Excel namespace in this project. There are many ways to read an excel file in C#, but this is the easy way I found for beginners like me. Just follow the steps below.
Before we start, make sure that you have Visual Studio installed on your machine. If not, you can visit this download link. You can download the community version for free.
Let’s Start:
- First, Create a new Windows forma project. Navigate to File. Choose New option. Select Project.
2. From the New Project window. Name your project in any way you want. In my case, I name my project Upload_Data_From_Excel. Proceed on clicking the “Ok” button. See the image below.
3. Add controls from the toolbox. What we need is a Form, buttons, and OpenFileDialog.
- Form
- Button -> for the upload click event.
- OpenFileDialog -> for browsing files.
- DataGridview ->for viewing of data
Below image is the UI I created. This will help you visualize and understand the next step.
- For clarity and easy navigating, we will rename our button. Click the button you added to your form and go to its property from the solution explorer and change the value. In my case, I name it as btn_Upload.
5. Now navigate to your solution explorer and right-click on Reference, choose Add Reference, and then add Microsoft.Office.Interop.Excel.
6. From the reference manager window, expand Assemblies, and click Extensions from the left pane and search for Microsoft.Office.Interop.Excel from the middle pane.
7. Verify if the reference is added. Go to your project solution explorer. Expand Reference, then look for Microsoft.Office.Interop.Excel.
8. After we verify and successfully added Microsoft.Office.Interop.Excel. Open your form design and double click on the btn_Upload button to add button click event.
9. Copy and paste the code below to your btn_Upload Click Event.
string file = ""; //variable for the Excel File Location
DataTable dt = new DataTable(); //container for our excel data
DataRow row;
DialogResult result = openFileDialog1.ShowDialog(); // Show the dialog.
if (result == DialogResult.OK) // Check if Result == "OK".
{
file = openFileDialog1.FileName; //get the filename with the location of the file
try {
//Create Object for Microsoft.Office.Interop.Excel that will be use to read excel file
Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(file);
Microsoft.Office.Interop.Excel._Worksheet excelWorksheet = excelWorkbook.Sheets[1];
Microsoft.Office.Interop.Excel.Range excelRange = excelWorksheet.UsedRange;
int rowCount = excelRange.Rows.Count; //get row count of excel data
int colCount = excelRange.Columns.Count; // get column count of excel data
//Get the first Column of excel file which is the Column Name
for (int i = 1; i <= rowCount; i++) {
for (int j = 1; j <= colCount; j++) {
dt.Columns.Add(excelRange.Cells[i, j].Value2.ToString());
}
break;
}
//Get Row Data of Excel
int rowCounter; //This variable is used for row index number
for (int i = 2; i <= rowCount; i++) //Loop for available row of excel data
{
row = dt.NewRow(); //assign new row to DataTable
rowCounter = 0;
for (int j = 1; j <= colCount; j++) //Loop for available column of excel data
{
//check if cell is empty
if (excelRange.Cells[i, j] != null && excelRange.Cells[i, j].Value2 != null) {
row[rowCounter] = excelRange.Cells[i, j].Value2.ToString();
}
else {
row[i] = "";
}
rowCounter++;
}
dt.Rows.Add(row); //add row to DataTable
}
dataGridView1.DataSource = dt; //assign DataTable as Datasource for DataGridview
//close and clean excel process
GC.Collect();
GC.WaitForPendingFinalizers();
Marshal.ReleaseComObject(excelRange);
Marshal.ReleaseComObject(excelWorksheet);
//quit apps
excelWorkbook.Close();
Marshal.ReleaseComObject(excelWorkbook);
excelApp.Quit();
Marshal.ReleaseComObject(excelApp);
}
catch(Exception ex) {
MessageBox.Show(ex.Message);
}
- Now you are ready to run your project and test if no error occurs. Run your application by pressing ctrl + f5 without debugging or f5 for debugging mode.
- Click Upload button to upload.
- Then select your excel file. See the image below.
This is how to Import Excel to Datagridview using C# code. Hopes this helps.
Final output:
Excel File:
Project Output:
Full Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Upload_Data_From_Excel
{
public partial class Upload_Data_Frm_EXCEL : Form
{
public Upload_Data_Frm_EXCEL()
{
InitializeComponent();
}
private void btn_upload_Click(object sender, EventArgs e)
{
string file = ""; //variable for the Excel File Location
DataTable dt = new DataTable(); //container for our excel data
DataRow row;
DialogResult result = openFileDialog1.ShowDialog(); // Show the dialog.
if (result == DialogResult.OK) // Check if Result == "OK".
{
file = openFileDialog1.FileName; //get the filename with the location of the file
try
{
//Create Object for Microsoft.Office.Interop.Excel that will be use to read excel file
Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(file);
Microsoft.Office.Interop.Excel._Worksheet excelWorksheet = excelWorkbook.Sheets[1];
Microsoft.Office.Interop.Excel.Range excelRange = excelWorksheet.UsedRange;
int rowCount = excelRange.Rows.Count; //get row count of excel data
int colCount = excelRange.Columns.Count; // get column count of excel data
//Get the first Column of excel file which is the Column Name
for (int i = 1; i <= rowCount; i++)
{
for (int j = 1; j <= colCount; j++)
{
dt.Columns.Add(excelRange.Cells[i, j].Value2.ToString());
}
break;
}
//Get Row Data of Excel
int rowCounter; //This variable is used for row index number
for (int i = 2; i <= rowCount; i++) //Loop for available row of excel data
{
row = dt.NewRow(); //assign new row to DataTable
rowCounter = 0;
for (int j = 1; j <= colCount; j++) //Loop for available column of excel data
{
//check if cell is empty
if (excelRange.Cells[i, j] != null && excelRange.Cells[i, j].Value2 != null)
{
row[rowCounter] = excelRange.Cells[i, j].Value2.ToString();
}
else
{
row[i] = "";
}
rowCounter++;
}
dt.Rows.Add(row); //add row to DataTable
}
dataGridView1.DataSource = dt; //assign DataTable as Datasource for DataGridview
//Close and Clean excel process
GC.Collect();
GC.WaitForPendingFinalizers();
Marshal.ReleaseComObject(excelRange);
Marshal.ReleaseComObject(excelWorksheet);
excelWorkbook.Close();
Marshal.ReleaseComObject(excelWorkbook);
//quit
excelApp.Quit();
Marshal.ReleaseComObject(excelApp);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
}
Thank you for reading! Happy Coding!!
If you are interested in ASP.NET Core you may visit my Blog page for my latest post.
Also Read: Ethernut telecommunications
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies.
Excel Sheet in VB.net – VB.net makes it possible for the COM object model of Microsoft Excel 2010 to work with your application.
To use this interoperability in your application, you need to add the namespace Microsoft.Office.Interop.Excel to your Windows Form Application.
Today I will teach you about How to Create an Excel File Using VB.net. Create an Excel File Using Visual Basic.Net provides support for interoperability between the COM object model of Microsoft Excel and your application.
Table of contents
- What is Visual Basic’s purpose?
- What is Excel Sheet in VB.net?
- How to Create an Excel File Using VB.net
- Program Output:
- Download the Source Code:
- Summary
- Readers might read also:
- Inquiries
We have learned how to use the Regular Expression in VB.net in the previous lesson. In this lesson we shall learn How To Write a Program for Excel Sheet in VB.net.
What is Visual Basic’s purpose?
The third-generation programming language was created to aid developers in the creation of Windows applications. It has a programming environment that allows programmers to write code in.exe or executable files.
They can also utilize it to create in-house front-end solutions for interacting with huge databases. Because the language allows for continuing changes, you can keep coding and revising your work as needed.
However, there are some limits to the Microsoft Visual Basic download. If you want to make applications that take a long time to process, this software isn’t for you.
That implies you won’t be able to use VB to create games or large apps because the system’s graphic interface requires a lot of memory and space.
Furthermore, the language is limited to Microsoft and does not support other operating systems.
In Excel documents, a Worksheet is a group of cells that are set up in rows and columns. It is the part of the computer you use to enter data.
Each worksheet has 1048576 rows and 16384 columns, making it a big table that you can use to organize information.
So let’s get started:
How to Create an Excel File Using VB.net
Steps in Creating an Excel Application from VB.net.
Time needed: 5 minutes.
Creating an Excel Application from VB.net
- Step 1: Create New Project
First is open the Visual Basic, Select File on the menu, then click New and create a new project.
- Step 2: Name your Project
Then a New Project Dialog will appear. You can rename your project, depending on what you like to name it. After that click OK
- Step 3: Design your Windows Form
Then design your form like this just like what I’ve shown you below
Add a Button from the toolbox. - Step 4: Add Reference
After that, Add a Reference to Microsoft Excel Object Library to your project.
To do this:
*Select add reference from the project menu. - Step 5: Locate Microsoft Excel Object Library
On the COM tab, Locate Microsoft Excel Object Library and then click select.
- Step 6: Add Following Code
Double click the code window and add this following code to the top of Public Class Form1.
Imports Excel = Microsoft.Office.Interop.Excel
- Step 7: Double click the Button and add this following code
Then, Go back to Design View and Double click the Button and add this following code.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim appXL As Excel.Application
Dim wbXl As Excel.Workbook
Dim shXL As Excel.Worksheet
Dim raXL As Excel.Range
appXL = CreateObject(“Excel.Application”)
appXL.Visible = True
wbXl = appXL.Workbooks.Add
shXL = wbXl.ActiveSheet
shXL.Cells(1, 1).Value = “FIRST NAME”
shXL.Cells(1, 2).Value = “LAST NAME”
shXL.Cells(1, 3).Value = “FULL NAME”
shXL.Cells(1, 4).Value = “SUBJECTS”
With shXL.Range(“A1”, “D1”)
.Font.Bold = True
.VerticalAlignment = Excel.XlVAlign.xlVAlignCenter
End With
Dim pupils(5, 2) As String
pupils(0, 0) = “Markfil”
pupils(0, 1) = “Baldomero”
pupils(1, 0) = “Juvy”
pupils(1, 1) = “Aral”
pupils(2, 0) = “Andrew”
pupils(2, 1) = “Braza”
pupils(3, 0) = “Carlie”
pupils(3, 1) = “Golez”
pupils(4, 0) = “Jesriel”
pupils(4, 1) = “Agita”
shXL.Range(“A2”, “B6”).Value = pupils
raXL = shXL.Range(“C2”, “C6”)
raXL.Formula = “=A2 & “” “” & B2″
With shXL
.Cells(2, 4).Value = “English”
.Cells(3, 4).Value = “Algebra”
.Cells(4, 4).Value = “Physics”
.Cells(5, 4).Value = “Trigonometry”
.Cells(6, 4).Value = “Theology”
End With
raXL = shXL.Range(“A1”, “D1”)
raXL.EntireColumn.AutoFit()
appXL.Visible = True
appXL.UserControl = True
raXL = Nothing
shXL = Nothing
wbXl = Nothing
appXL.Quit()
appXL = Nothing
Exit Sub
Err_Handler:
MsgBox(Err.Description, vbCritical, “Error: ” & Err.Number)
End Sub - Step 8: Click F5 to run the program.
Finally, Click F5 to run the program.
Program Output:
Download the Source Code:
Summary
This article shows how to make an Excel sheet and how to fill a range of cells with a number of different values. This article also shows how to get a range of cells as an array of cells.
Readers might read also:
- How to Get Total Value in DataGridview Using VB.Net
- How to Connect Visual Basic.Net to MS Access Database
Inquiries
If you have any questions or suggestions about this Excel Sheet in VB.NET, please let me know just drop a comment below of send me a message on our contact page.
PREVIOUS