How To Read An Excel File Using C#
Có thể bạn quan tâm
The following program demonstrates the process of opening an existing Excel spreadsheet in C# by using the COM interop capability within the .NET Framework. Additionally, the program showcases how to identify and retrieve Named Ranges within Excel, as well as how to determine the range of occupied cells (Used area) within an Excel sheet.
By utilizing the .NET Framework's COM interop capability, developers gain the ability to seamlessly integrate C# with Excel, enabling efficient interaction with Excel spreadsheets. Through this integration, the program opens an existing Excel spreadsheet, providing access to its data and functionalities.
Excel Library
To access the object model from Visual C# .NET, you have to add the Microsoft Excel 15.0 Object Library to you project.
Create a new project in your Visual Studio and add a Command Button to your C# Form.
How to use COM Interop to Create an Excel Spreadsheet
Form the following pictures you can find how to add Excel reference library in your project.
Select Add Reference dialogue from Project menu of your Visual Studio.
Select Microsoft Excel 15.0 Object Library of COM leftside menu and click OK button.
After import the reference library, we have to initialize the Excel application Object.
Excel.Application xlApp = new Excel.Workbook xlWorkBook ; Excel.Worksheet xlWorkSheet ; Excel.Range range ;Next step is to open the Excel file and get the specified worksheet.
xlApp = new Excel.Application(); xlWorkBook = xlApp.Workbooks.Open(@"d:\csharp-Excel.xls", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);After get the selcted worksheet, next step is to specify the used range in worksheet
How to specify a range in Excel sheet?
If you want to select a specific cell in Excel sheet, you can code like this.
Excel.Worksheet excelSheet = workbook.ActiveSheet; Excel.Range rng = (Excel.Range)excelSheet.Cells[10, 10];Reading Named Ranges in Excel
Worksheet.get_Range MethodIf you want to select multiple cell value from Excel sheet, you can code like this.
Excel.Worksheet excelSheet = workbook.ActiveSheet; Excel.Range rng = (Excel.Range) excelSheet.get_Range(excelSheet.Cells[1, 1], excelSheet.Cells[3,3]);How to get the range of occupied cells in excel sheet
For reading entire content of an Excel file in C#, we have to know how many cells used in the Excel file. In order to find the used range we use "UsedRange" property of xlWorkSheet . A used range includes any cell that has ever been used. It will return the last cell of used area.
Excel.Range range ; range = xlWorkSheet.UsedRange;How to properly clean up Excel interop objects
Interop marshaling governs how data is passed in method arguments and return values between managed and unmanaged memory during calls. Most data types have common representations in both managed and unmanaged memory. The interop marshaler handles these types for you. Other types can be ambiguous or not represented at all in managed memory.
Marshal.ReleaseComObject (excelWB); Marshal.ReleaseComObject (excelApp);It is important to note that every reference to an Excel COM object had to be set to null when you have finished with it, including Cells, Sheets, everything.
The Marshal class is in the System.Runtime.InteropServices namespace, so you should import the following namespace.
using System.Runtime.InteropServices;Open and Read an Excel Spreadsheet Programmatically
Copy and paste the following source code in your C# project file
Full Source C# using System; using System.Windows.Forms; using System.Runtime.InteropServices; using Excel = Microsoft.Office.Interop.Excel; namespace WindowsFormsApplication4 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Excel.Application xlApp ; Excel.Workbook xlWorkBook ; Excel.Worksheet xlWorkSheet ; Excel.Range range ; string str; int rCnt ; int cCnt ; int rw = 0; int cl = 0; xlApp = new Excel.Application(); xlWorkBook = xlApp.Workbooks.Open(@"d:\csharp-Excel.xls", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); range = xlWorkSheet.UsedRange; rw = range.Rows.Count; cl = range.Columns.Count; for (rCnt = 1; rCnt < = rw; rCnt++) { for (cCnt = 1; cCnt < = cl; cCnt++) { str = (string)(range.Cells[rCnt, cCnt] as Excel.Range).Value2; MessageBox.Show(str); } } xlWorkBook.Close(true, null, null); xlApp.Quit(); Marshal.ReleaseComObject(xlWorkSheet); Marshal.ReleaseComObject(xlWorkBook); Marshal.ReleaseComObject(xlApp); } } }When you execute this C# source code the program read all used cells from Excel file.
Conclusion
By examining this program, developers can gain valuable insights into the process of opening an existing Excel spreadsheet in C# and perform operations such as locating Named Ranges and obtaining the Used area within the sheet. These capabilities enhance the integration between C# and Excel, enabling developers to use Excel's powerful features within their C# applications.
Next > How to programmatically Add New Worksheets Related Topics- How to create Excel file in C#
- How to open an Excel file in C#
- How to programmatically Add New Worksheets
- How to delete worksheet from an excel file
- How to format an Excel file using C#
- How to insert a picture in excel from C# App
- How to insert a background picture in excel
- How to create Excel Chart from C#
- How to export excel chart from C#
- How to excel chart in C# picturebox
- C# data validation input box in excel file
- Read and Import Excel File into DataSet or DataTable
- How to insert data to Excel file using OLEDB
- How to update data in Excel file using OLEDB
- How to export databse to excel file
- How to export DataGridView to excel file
Từ khóa » Visual Studio Excel Range
-
Worksheet.Range Property (Microsoft.Office.Tools.Excel)
-
Work With Ranges - Visual Studio (Windows) - Microsoft Docs
-
Range Object (Excel) | Microsoft Docs
-
How To: Programmatically Apply Color To Excel Ranges - Visual Studio ...
-
Range Interface (Microsoft.Office.Interop.Excel)
-
How To Select Cells Or Ranges By Using Visual Basic Procedures In ...
-
How To: Programmatically Refer To Worksheet Ranges In Code
-
WorksheetBase.Range Property (Microsoft.Office.Tools.Excel)
-
How To: Programmatically Apply Color To Excel Ranges - Microsoft Docs
-
C# - Fastest Way To Get An Excel Range Of Rows - Stack Overflow
-
C# Excel Range Code Example (Without Using Interop) | IronXL
-
Working With Range Object In Excel Add In - Visual Studio Feedback
-
Worksheet.Range Property | .NET File Format Library - C# & VB.NET
-
How To Manage Excel Ranges Using Visual Basics - Universal Class