Microsoft office interop excel чтение

Надо исправить WorkBook.Open(). 3 параметер ReadOnly

Microsoft.Office.Interop.Excel.Workbook ObjWorkBook = ObjExcel.Workbooks.Open(NameExcel, 0, true, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);

Workbook Open(
string Filename,
Object UpdateLinks,
Object ReadOnly,
Object Format,
Object Password,
Object WriteResPassword,
Object IgnoreReadOnlyRecommended,
Object Origin,
Object Delimiter,
Object Editable,
Object Notify,
Object Converter,
Object AddToMru,
Object Local,
Object CorruptLoad

)

WorkBook.Open()

  • Remove From My Forums
  • Question

  • Hi,

    I want to write a program to access cells in an excel file?

    How can I do that?

    Thanks

Answers

  • Try this code!

    Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel.Workbook wb = app.Workbooks.Open("your excel file path", 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); Worksheet sheet = (Worksheet)wb.Sheets["Sheet name to read"]; Range excelRange = sheet.UsedRange; foreach (Microsoft.Office.Interop.Excel.Range row in excelRange.Rows) { int rowNumber = row.Row; string[] A4D4 = GetRange("A" + rowNumber + ":F" + rowNumber + "", sheet); } public string[] GetRange(string range, Worksheet excelWorksheet) { Microsoft.Office.Interop.Excel.Range workingRangeCells = excelWorksheet.get_Range(range, Type.Missing); //workingRangeCells.Select(); System.Array array = (System.Array)workingRangeCells.Cells.Value2; string[] arrayS = this.ConvertToStringArray(array); return arrayS; }


    • Edited by

      Monday, September 5, 2011 6:40 AM

    • Marked as answer by
      Martin_Xie
      Monday, September 19, 2011 11:49 AM

  • Hi DarkSeeker,

    Try this:

    static void Main(string[] args)
    {
      IWorkbook workbook = Factory.GetWorkbook(@"C:tmpMyWorkbook.xls");
      IWorksheet worksheet = workbook.Worksheets[0];                 
      IRange a1 = worksheet.Cells["A1"]; 
      object rawValue = a1.Value;    
      string formattedText = a1.Text;             
      Console.WriteLine("rawValue={0} formattedText={1}", rawValue, formattedText);         
    } 

    Regards, http://shwetamannjain.blogspot.com

    • Marked as answer by
      Martin_Xie
      Monday, September 19, 2011 11:50 AM

  • I
    want to write a program to access cells in an excel file?

    Thanks all for your great help and suggestions.

    Hi DarkSeeker,

    Welcome to MSDN Forum.

    Usually, there are 2 approaches to access Office Excel files in .Net.

    1.      
    COM Interop approach as the above said.

    FAQ:  How do I use Excel Automation in .NET

    http://social.msdn.microsoft.com/Forums/en-US/vbgeneral/thread/df02c6d2-e1b5-4731-bb04-2674aed789de

    Add Reference to COM component “Microsoft Excel Object Library” into your project.

    Code sample: Get/Set cell value in Excel Spreadsheet.

    using Microsoft.Office.Interop.Excel;

    object oExcel
    = new Excel.Application;

    object oBook
    = oExcel.Workbooks.Open(«C:\Book1.xls»);
    object
    oSheet =
    oBook.Worksheets(1);
    // e.g. Read value in A2 cell

    string cellValue
    = oSheet.Range(«A2»).Value;
    // e.g. Change value in A2 cell
    oSheet.Range(«A2»).Value
    = «»;
    oBook.SaveAs(«C:\Book1.xls»,
    true);
    oExcel.Quit();

    2.       OleDb Data Provider approach

    Retrieve Excel Sheet data and bind into DataGridView control, and then access particular cells via DataGridView.

    using System.Data;

    using System.Data.OleDb;


    OleDbConnection conn = new
    OleDb.OleDbConnection((«provider=Microsoft.Jet.OLEDB.4.0; »
    + («data source=C:\myData.xls; »
    + «Extended Properties=Excel 8.0;»)));
    // Select the data from Sheet1 of the workbook.
    OleDbDataAdapter ada = new
    OleDbDataAdapter(«select * from Sheet1$]», conn);
    DataSet ds = new
    DataSet();
    ada.Fill(ds);
    dataGridView1.DataSource
    = ds.Tables[0].DefaultView;
    conn.Close();

    // Access particular cells on DataGridView.

    DataGridView1(RowIndex, ColumnIndex)

    DataGridView1.Rows(RowIndex).Cells(ColumnIndex)


    Martin Xie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • Proposed as answer by
      Carmelo La Monica
      Tuesday, September 6, 2011 5:54 AM
    • Marked as answer by
      Martin_Xie
      Monday, September 19, 2011 11:48 AM

Table of Contents

  • Background
  • Prerequisites
  • Source Code


Background

A few days ago we got a requirement to read Excel files and store those values in the SQL server database. So in this example, we’re going to show how to get the basic four import data such as Excel Work Book
Name, Worksheet Count in that Workbook, Name of the First Worksheet, and finally the value of the first cell in that worksheet.

Prerequisites

Kindly ensure you add the following DLL as shown in the below screenshot,

add

add

Namespace

using Excel = Microsoft.Office.Interop.Excel;

Source Code

C# Code

  1. protected void BtnGetExcelFileDetails_Click(object sender, EventArgs e)   
  2. {  
  3.   
  4.     try   
  5.     {  
  6.           
  7.         Excel.Application oExcel = new Excel.Application();  
  8.   
  9.           
  10.         string filepath = @ «D:TPMSUploaded_BoqRaveena_boq_From_Db.xlsx»;  
  11.   
  12.           
  13.         Excel.Workbook WB = oExcel.Workbooks.Open(filepath);  
  14.   
  15.   
  16.           
  17.         string ExcelWorkbookname = WB.Name;  
  18.   
  19.           
  20.         int worksheetcount = WB.Worksheets.Count;  
  21.   
  22.         Excel.Worksheet wks = (Excel.Worksheet) WB.Worksheets[1];  
  23.   
  24.           
  25.   
  26.         string firstworksheetname = wks.Name;  
  27.   
  28.           
  29.         var firstcellvalue = ((Excel.Range) wks.Cells[1, 1]).Value;  
  30.   
  31.     } catch (Exception ex)   
  32.     {  
  33.   
  34.         string error = ex.Message;  
  35.     }  
  36.   
  37. }  

Hope the above information was useful.

  • Новые
  • Лучшие
  • Все

Чтение данных из таблиц Excel

Язык программирования C#

Многие материалы которые я здесь описываю, я размещаю для самого себя, в основном чтобы мучительно долго не вспоминать как же оно делается и вновь пытать поисковики запросами.
На сей раз опишу простой пример доступа и выборки данных из таблиц Excel в C#. На днях пришлось сим заниматься и в очередной раз вспоминать как оно делается попроще, для больших задач с кучей разных наворотов информации в интернете много. А надо то оно, как обычно бывает, совсем простенько чтоб решало поставленную задачу.

Итак приступим:

Первым делом добавляем в наш проект (Add References…)

Microsoft.Office.Interop.Excel

Далее добавляем на форму:
TextBox — в него будем вводить номер столбца.
RichTextBox — в него выведем прочитанные из эксельки данные.
Button — по этой кнопочки всё выполняется.
OpenFileDialog — для выбора файла xls.

Далее в обработчике события нажатия кнопки пишем такой код:

//Открываем файл Экселя
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
  //Создаём приложение.
  Microsoft.Office.Interop.Excel.Application ObjExcel = new Microsoft.Office.Interop.Excel.Application();
  //Открываем книгу.                                                                                                                                                        
  Microsoft.Office.Interop.Excel.Workbook ObjWorkBook = ObjExcel.Workbooks.Open(openFileDialog1.FileName, 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);
  //Выбираем таблицу(лист).
  Microsoft.Office.Interop.Excel.Worksheet ObjWorkSheet;
  ObjWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ObjWorkBook.Sheets[1];

  //Очищаем от старого текста окно вывода.
  richTextBox1.Clear();

  for (int i = 1; i < 101; i++)
    {
    //Выбираем область таблицы. (в нашем случае просто ячейку)
    Microsoft.Office.Interop.Excel.Range range = ObjWorkSheet.get_Range(textBox1.Text + i.ToString(), textBox1.Text + i.ToString());
    //Добавляем полученный из ячейки текст.
    richTextBox1.Text = richTextBox1.Text + range.Text.ToString()+"n";
    //это чтобы форма прорисовывалась (не подвисала)...
    Application.DoEvents();
    }

   //Удаляем приложение (выходим из экселя) - ато будет висеть в процессах!
   ObjExcel.Quit();
}

Вот собственно и всё, должно работать.
Исходник можно скачать здесь: ExcelExamle.rar

P.S.
Вот здесь пример того как делать обратное (выводить данные в Excel):
http://babakov.net/blog/lang_c_sharp/39.html


C шарп
Excel

Этот пример создан для чтения файла excel в консольным приложением C#.

Используя пространство имен Excel в C#, мы можем загрузить или открыть файл Excel и прочитать листы ячеек.

Шаг 1: Мы должны ссылаться на пространство имен Excel для проекта. Для этого добавим ссылку на Com объект.

Шаг 2: Добавим пространство имен;

using Microsoft.Office.Interop.Excel;

Шаг 3: создание ссылок на COM-объекты и проверка наличия программы Excel

   //Create COM Objects.

            Application excelApp = new Application();

            if (excelApp == null)

            {

               Console.WriteLine(«Excel is not installed!!»);

               return;

            }

Шаг 4: создание книги, страниц и переменных диапазона

Workbook excelBook = excelApp.Workbooks.Open(@»E:readExample.xlsx»);

            _Worksheet excelSheet = excelBook.Sheets[1];

            Range excelRange = excelSheet.UsedRange;

Шаг 5: вычисление строк и колонок.

int rowCount = excelRange.Rows.Count;

int colCount = excelRange.Columns.Count;

Шаг 7: завершаем работу приложения

//after reading, relaase the excel project

            excelApp.Quit();

            System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);

            Console.ReadLine();

Исходный код программы:

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

39

40

41

42

43

44

45

46

47

48

49

50

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using Microsoft.Office.Interop.Excel;

namespace Пример_приложения_чтение_данных_из_Excel_Console

{

    //dont forget — using Microsoft.Office.Interop.Excel;

    class Program

    {

        static void Main(string[] args)

        {

            //Create COM Objects.

            Application excelApp = new Application();

            if (excelApp == null)

            {

                Console.WriteLine(«Excel is not installed!!»);

                return;

            }

            Workbook excelBook = excelApp.Workbooks.Open(@»D:readExample.xlsx»);

            _Worksheet excelSheet = excelBook.Sheets[1];

            Range excelRange = excelSheet.UsedRange;

            int rows = excelRange.Rows.Count;

            int cols = excelRange.Columns.Count;

            for (int i = 1; i <= rows; i++)

            {

                //create new line

                Console.Write(«rn»);

                for (int j = 1; j <= cols; j++)

                {

                    //write the console

                    if (excelRange.Cells[i, j] != null && excelRange.Cells[i, j].Value2 != null)

                        Console.Write(excelRange.Cells[i, j].Value2.ToString() + «t»);

                }

            }

            //after reading, relaase the excel project

            excelApp.Quit();

            System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);

            Console.ReadLine();

        }

    }

}

Понравилась статья? Поделить с друзьями:
  • Microsoft office interop excel скачать библиотеку
  • Microsoft office interop excel примеры
  • Microsoft office interop excel пример
  • Microsoft office excel основы работы
  • Microsoft office excel определения