Add microsoft office interop excel reference

RRS feed

  • Remove From My Forums
  • Вопрос

  • Hi,

    I’m using Visual Studio 2017 Community edition with Windows 10 and I can’t seem to create a reference to Microsoft.Office.Interop.Excel which I need in order to be able to use C# to create a spreadsheet from a SQL statement that will then open up in Excel.
      Is this not available in the community edition or is there something else I am supposed to use?

    Thanks.

    • Изменено
      JunkBondster
      8 июня 2017 г. 14:16

Все ответы

  • Hi,

    I’m using Visual Studio 2017 Community edition with Windows 10 and I can’t seem to create a reference to Microsoft.Office.Interop.Excel which I need in order to be able to use C# to create a spreadsheet that will open up in Excel.   Is this not available
    in the community edition or is there something else I am supposed to use?

    Thanks.

    • Объединено
      Wendy ZangMicrosoft contingent staff
      9 июня 2017 г. 2:39
      deplicate

  • https://social.msdn.microsoft.com/Forums/office/en-US/home?category=officedev

    You should post to the above forum.

  • Hello,

    You should be able to «add reference», select «Assemblies», press the «Browse» button, traverse to a path along this line (most likely close to your machine but slightly different)

    C:Program Files (x86)Microsoft Visual Studio 14.0Visual Studio Tools for OfficePIAOffice15

    Then you should see to select


    Please remember to mark the replies as answers if they help and unmark them if they provide no help, this will help others who are looking for solutions to the same or similar problem. Contact via my Twitter (Karen Payne) or Facebook (Karen Payne) via
    my MSDN profile but will not answer coding question on either.
    VB Forums — moderator

    profile for Karen Payne on Stack Exchange, a network of free, community-driven Q&A sites

    • Предложено в качестве ответа
      Chenchen Li
      9 июня 2017 г. 2:00

  • I dont have office tools under Visual Studio. I have Libra Excel How do I get dll for that

    • Изменено
      Seema716
      25 апреля 2019 г. 19:53

  • Had the same question, finally figured it out.

    1. Go to the Visual Studio Installer

    2. In the Installer, click the Modify Button:

    3. Go to the Individual Components tab and click: Visual Studio Tools for Office (VSTO)

    4. Click Modify and let it install.

    5. Open your Visual Studio project, go to Assemblies, in the search box type in office, and choose: Microsoft.Office.Interop.Excel.

    6. On top of the module, add: Imports Microsoft.Office.Interop.Excel

    • Предложено в качестве ответа
      BIManish
      13 ноября 2019 г. 9:18

  • Hi Manish,

    I did the steps you mentioned, it worked for me.

    Thank you

    Neelima

I had developed a system that deals with excel sheets in 2006 using MS VS 2005. Now, I can not use the same reference with MS VS 2012.

var app = new Microsoft.Office.Interop.Excel.Application();
Workbooks wbs = app.Workbooks;

abatishchev's user avatar

abatishchev

97.3k85 gold badges297 silver badges432 bronze badges

asked Mar 8, 2013 at 2:52

Moe_Al's user avatar

2

Use NuGet (VS 2013+):

The easiest way in any recent version of Visual Studio is to just use the NuGet package manager. (Even VS2013, with the NuGet Package Manager for Visual Studio 2013 extension.)

Right-click on «References» and choose «Manage NuGet Packages…», then just search for Excel.

enter image description here


VS 2012:

Older versions of VS didn’t have access to NuGet.

  • Right-click on «References» and select «Add Reference».
  • Select «Extensions» on the left.
  • Look for Microsoft.Office.Interop.Excel.
    (Note that you can just type «excel» into the search box in the upper-right corner.)

VS2012/2013 References


VS 2008 / 2010:

  • Right-click on «References» and select «Add Reference».
  • Select the «.NET» tab.
  • Look for Microsoft.Office.Interop.Excel.

VS 2010 References

answered Mar 8, 2013 at 2:58

Grant Winney's user avatar

Grant WinneyGrant Winney

64.7k12 gold badges114 silver badges164 bronze badges

3

You can also try installing it in Visual Studio via Package Manager.

Run Install-Package Microsoft.Office.Interop.Excel in the Package Console.
This will automatically add it as a project reference.

Use is like this:

Using Excel=Microsoft.Office.Interop.Excel;

MJH's user avatar

MJH

2,2817 gold badges17 silver badges20 bronze badges

answered Dec 31, 2016 at 8:22

CYCLONE's user avatar

CYCLONECYCLONE

5414 silver badges5 bronze badges

0

If you have VS 2013 Express and you cant find Microsoft.Office namespace, try this (‘Microsoft Excel 12.0 Object Library’ if you want to use Office 2007)

enter image description here

answered Apr 20, 2015 at 8:37

Muflix's user avatar

MuflixMuflix

5,77015 gold badges72 silver badges150 bronze badges

1

Building off of Mulfix’s answer, if you have Visual Studio Community 2015, try Add Reference… -> COM -> Type Libraries -> ‘Microsoft Excel 15.0 Object Library’.

answered Nov 15, 2016 at 18:08

Daniel.Veneziano's user avatar

0

Instead of early binding the reference, there’s an open source project called NetOffice that abstracts this from your project, making life much easier. That way you don’t have to rely on your users having a specific version of Office installed.

NetOffice Codeplex site.

answered Jun 11, 2015 at 14:24

LawMan's user avatar

LawManLawMan

3,4491 gold badge28 silver badges32 bronze badges

You have to check which version of Excel you are targeting?

If you are targeting Excel 2010 use version 14 (as per Grant’s screenshot answer), Excel 2007 use version 12 . You can not support Excel 2003 using vS2012 as they do not have the correct Interop dll installed.

answered Apr 1, 2013 at 5:09

mas_oz2k1's user avatar

mas_oz2k1mas_oz2k1

2,8513 gold badges33 silver badges41 bronze badges

Go to Visual Studio Installer under Individual Components and click ‘Office Developer Tools for Visual Studio. This solved it for me after lots of headaches.

Go to Visual Studio Installer under Individual Components and click 'Office Developer Tools for Visual Studio'

answered Jul 28, 2022 at 14:34

Dan's user avatar

DanDan

1741 gold badge2 silver badges10 bronze badges

I cannot find this reference in the list provided.

What I have tried:

I right click on «References» The Reference Manager pops up. I cannot find Microsoft.Office.Interop.Excel in any of the tabs.


Solution 1

First, you have to have Office installed on the machine.

Next, you go into References -> right-click -> Add Reference -> click on the COM tab. In the list, look for «Microsoft Office version Object Library». Put a check mark next to that and click OK.

If you are writing an ASP.NET / MVC / Windows Service app, do not bother doing this. Office is not supported in these types of applications.

Comments

Solution 2

Another way to do it:
In Reference Manager, use Browse… (at the bottom) to find the DLL file:
C:WindowsassemblyGAC_MSILMicrosoft.Office.Interop.Excel15.0.0.0…
Microsoft.Office.Interop.Excel.dll
Add

With new releases, this may change.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

 

Print

Answers RSS

Top Experts
Last 24hrs This month

CodeProject,
20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8
+1 (416) 849-8900

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:

  1. First, Create a new Windows forma project. Navigate to File. Choose New option. Select Project.

Import Excel to Datagridview using C#

New 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.

Import Excel to Datagridview using C#

Name Project (Upload_Data_From_Excel)

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.

Import Excel to Datagridview using C#
Create design
  1. 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.
Import Excel
Change button name

5. Now navigate to your solution explorer and right-click on Reference, choose Add Reference, and then add Microsoft.Office.Interop.Excel.

Import Excel
Add Reference

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.

Import Excel

Add Microsoft Office Interop

7. Verify if the reference is added. Go to your project solution explorer. Expand Reference, then look for Microsoft.Office.Interop.Excel.

Import Excel
Check Reference if Added

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.

Import Excel

Double Click on button upload

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);
  }
  1. 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.

Import Excel

Run Project
  • Then select your excel file. See the image below.

Import Excel

Open File

This is how to Import Excel to Datagridview using C# code. Hopes this helps.

Final output:

Excel File:

Import Excel

Excel File

Project Output:

Import Excel

Final 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.

This C# tutorial handles Microsoft Excel files. It applies Microsoft.Office.Interop.Excel to read XLS files.

Excel creates XLS and XLSX files. These files are hard to read in C# programs.

They are handled with the Microsoft.Office.Interop.Excel assembly. This assembly sometimes creates performance issues. Step-by-step instructions are helpful.

Tip: Add the Microsoft.Office.Interop.Excel assembly by going to Project -> Add Reference.

Visual Studio

Interop. You must include a namespace to use Excel in your C# program. You have to use Visual Studio’s GUI to add an assembly to your program to use Excel interop. Use the Add Reference command for this.

Namespace containing Excel interop methods

using Microsoft.Office.Interop.Excel;

First, we make a new C# class file in Visual Studio and you can call it something like ExcelInterop. We use that name in the examples, but you are free to use something more familiar or standard.

Tip: Add the using line to your class file—this will make the Excel namespace handy.

Excel interop methods. If you look at various Excel interop objects in IntelliSense, you will see hundreds of undocumented functions. You will only need to use a few—unless you have complex requirements.

Class that stores Application: C#

/// <summary>
/// This class contains the Excel Interop code we need.
/// It can be shared in many places to avoid duplication.
/// </summary>
class ExcelReaderInterop
{
    /// <summary>
    /// Store the Application object we can use in the member functions.
    /// </summary>
    Application _excelApp;

    /// <summary>
    /// Initialize a new Excel reader. Must be integrated
    /// with an Excel interface object.
    /// </summary>
    public ExcelReaderInterop()
    {
	_excelApp = new Application();
    }
}

Interop class. We need a place to store our Excel information, so we use our special class. Put an Application object called _excelApp as a member. In the constructor, make the _excelApp a new Application object.

Class

Open. To open Excel files, you must call Workbooks.Open. It is harder than it should be. Put a public function on the class, and it can use the _excelApp we already have. The following code uses the Workbooks.Open method.

Method that opens Excel workbooks: C#

/// <summary>
/// Open the file path received in Excel. Then, open the workbook
/// within the file. Send the workbook to the next function, the internal scan
/// function. Will throw an exception if a file cannot be found or opened.
/// </summary>
public void ExcelOpenSpreadsheets(string thisFileName)
{
    try
    {
	//
	// This mess of code opens an Excel workbook. I don't know what all
	// those arguments do, but they can be changed to influence behavior.
	//
	Workbook workBook = _excelApp.Workbooks.Open(thisFileName,
	    Type.Missing, Type.Missing, Type.Missing, Type.Missing,
	    Type.Missing, Type.Missing, Type.Missing, Type.Missing,
	    Type.Missing, Type.Missing, Type.Missing, Type.Missing,
	    Type.Missing, Type.Missing);

	//
	// Pass the workbook to a separate function. This new function
	// will iterate through the worksheets in the workbook.
	//
	ExcelScanIntenal(workBook);

	//
	// Clean up.
	//
	workBook.Close(false, thisFileName, null);
	Marshal.ReleaseComObject(workBook);
    }
    catch
    {
	//
	// Deal with exceptions.
	//
    }
}

I apologize for the mess that is Workbooks.Open. This is probably the result of legacy code at Microsoft. There are many Type.Missing arguments. And don’t panic over those Type.Missing arguments. You don’t need to know what they do.

Next, open a workbook with Workbooks.Open. Send the workbook we open to another function called ExcelScanInternal. Close the workbook and release all the memory. You will need to deal with exceptions in the catch block.

Note: I don’t have the information about all the detailed exceptions that can be thrown. Just catch them in one statement.

Catch

Loop. To get data from workbooks, you will need to loop over the sheets. An Excel workbook has one or more sheets. In Excel, you can switch between sheets by clicking on the tabs on the bottom.

Tip: In Excel Interop, sheets are indexed starting at 1. This is similar to Visual Basic but not the C# language.

Method that gets sheets: C#

/// <summary>
/// Scan the selected Excel workbook and store the information in the cells
/// for this workbook in an object[,] array. Then, call another method
/// to process the data.
/// </summary>
private void ExcelScanIntenal(Workbook workBookIn)
{
    //
    // Get sheet Count and store the number of sheets.
    //
    int numSheets = workBookIn.Sheets.Count;

    //
    // Iterate through the sheets. They are indexed starting at 1.
    //
    for (int sheetNum = 1; sheetNum < numSheets + 1; sheetNum++)
    {
	Worksheet sheet = (Worksheet)workBookIn.Sheets[sheetNum];

	//
	// Take the used range of the sheet. Finally, get an object array of all
	// of the cells in the sheet (their values). You can do things with those
	// values. See notes about compatibility.
	//
	Range excelRange = sheet.UsedRange;
	object[,] valueArray = (object[,])excelRange.get_Value(
	    XlRangeValueDataType.xlRangeValueDefault);

	//
	// Do something with the data in the array with a custom method.
	//
	ProcessObjects(valueArray);
    }
}

In this example, the object array is directly usable in the C# language. Once you get the objects, you don’t need to do any more Interop. This provides a huge performance boost. There are benefits to reducing calls to Excel Interop.

Next: I show some benchmarks I took comparing the various techniques of Excel interop.

Performance. If you do your Excel processing wrong, you could be waiting a long time to process even 10 spreadsheets at once. Using the Cells[] indexer on a range, or getting the range with the Range property or get_Range() is slow.

Note: This document is based on .NET 3.5. The approach shown here is the fastest one.

Excel interop benchmark

Cells[]:                30.0 seconds
get_Range(), Cells[]:   15.0 seconds
UsedRange, get_Value():  1.5 seconds [fastest]

Compatibility. There is a compatibility issue with the Excel program on the Apple Mac OS X platform. Excel stores OA dates in different formats on Macs and PCs. The code above shows one solution, which is to use get_Value() instead of Value2.

FromOADate and Excel Dates

Note: The function get_Value() returns objects that do not vary based on the original platform.

Charts. It is also possible to create charts directly in your Excel workbooks. The ChartWizard method is useful for this. Also, you can use new features from the .NET Framework 4.0 to simplify how you use Excel.

This example uses several hard-coded constant values. The range of the data we want to chart is encoded in the topLeft and bottomRight constants. You can see we use the ChartObjects property and then Add a Chart.

Next: We set the range of the chart with SetSourceData. We use the XlChartType.xlLine enumerated constant and call ChartWizard().

Tip: Include the Microsoft.Office.Interop.Excel namespace by right-clicking on References and selecting Add Reference.

C# program that creates Excel chart from data

using Microsoft.Office.Interop.Excel;

class Program
{
    const string fileName = "C:\Book1.xlsx";
    const string topLeft = "A1";
    const string bottomRight = "A4";
    const string graphTitle = "Graph Title";
    const string xAxis = "Time";
    const string yAxis = "Value";

    static void Main()
    {
	// Open Excel and get first worksheet.
	var application = new Application();
	var workbook = application.Workbooks.Open(fileName);
	var worksheet = workbook.Worksheets[1] as
	    Microsoft.Office.Interop.Excel.Worksheet;

	// Add chart.
	var charts = worksheet.ChartObjects() as
	    Microsoft.Office.Interop.Excel.ChartObjects;
	var chartObject = charts.Add(60, 10, 300, 300) as
	    Microsoft.Office.Interop.Excel.ChartObject;
	var chart = chartObject.Chart;

	// Set chart range.
	var range = worksheet.get_Range(topLeft, bottomRight);
	chart.SetSourceData(range);

	// Set chart properties.
	chart.ChartType = Microsoft.Office.Interop.Excel.XlChartType.xlLine;
	chart.ChartWizard(Source: range,
	    Title: graphTitle,
	    CategoryTitle: xAxis,
	    ValueTitle: yAxis);

	// Save.
	workbook.Save();
    }
}

In this example, we use the named parameters and default parameters functionality in the .NET Framework 4.0. In older versions of the .NET Framework, you will need to specify the Missing value yourself.

Note: Some code contributed by Randall Kelsey was adapted for the charting example.

The program requires an Excel document named Book1.xlsx located at C:Book1.xlsx. In this file, you need to add four values in the first column. The program, upon execution, will create a chart based on those four values.

Tip: Many options can be changed to create different charts based on different data ranges.

Also: We showed how named parameters and default parameters from the .NET Framework 4.0 can clean up Microsoft.Office.Interop.Excel code.

Summary. We saw how to get started with Excel interop and avoid severe performance problems with the assembly. It is confusing to call the complicated Open method with Type.Missing in more places than necessary.


Related Links

Adjectives
Ado
Ai
Android
Angular
Antonyms
Apache
Articles
Asp
Autocad
Automata
Aws
Azure
Basic
Binary
Bitcoin
Blockchain
C
Cassandra
Change
Coa
Computer
Control
Cpp
Create
Creating
C-Sharp
Cyber
Daa
Data
Dbms
Deletion
Devops
Difference
Discrete
Es6
Ethical
Examples
Features
Firebase
Flutter
Fs
Git
Go
Hbase
History
Hive
Hiveql
How
Html
Idioms
Insertion
Installing
Ios
Java
Joomla
Js
Kafka
Kali
Laravel
Logical
Machine
Matlab
Matrix
Mongodb
Mysql
One
Opencv
Oracle
Ordering
Os
Pandas
Php
Pig
Pl
Postgresql
Powershell
Prepositions
Program
Python
React
Ruby
Scala
Selecting
Selenium
Sentence
Seo
Sharepoint
Software
Spellings
Spotting
Spring
Sql
Sqlite
Sqoop
Svn
Swift
Synonyms
Talend
Testng
Types
Uml
Unity
Vbnet
Verbal
Webdriver
What
Wpf

Понравилась статья? Поделить с друзьями:
  • Add links in word
  • Add lines to excel chart
  • Add line to table in word
  • Add a question word to the following questions
  • Add line to excel chart