Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C#, open excel file and apply a filter to retrive specific rows?

issue : my code always return one row instead of 13.

Code:

Excel.Application xlApp = null;
Excel.Workbook xlWorkBook = null;
Excel.Worksheet xlWorkSheet = null;
Excel.Range xlrange = null;

string sCurrentDir = Directory.GetCurrentDirectory();

xlApp = new Excel.Application();

xlWorkBook = xlApp.Workbooks.Open(sCurrentDir + @"\Res\res.xlsx", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, 0, true, 1, 0);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

xlrange = xlWorkSheet.UsedRange;       
xlrange.AutoFilter(5, "4", Excel.XlAutoFilterOperator.xlFilterValues, Type.Missing, true);

Excel.Range filteredRange = xlrange.SpecialCells(Excel.XlCellType.xlCellTypeVisible,    Excel.XlSpecialCellsValue.xlTextValues);

MessageBox.Show(filteredRange.Rows.Count.ToString());

as you can see i want to Filter Column 5 With Value "4". it should returns 13 Rows but it always returns 1 row.

any help will appreciated

like image 782
Khaled Rakhisi Avatar asked Jul 16 '17 13:07

Khaled Rakhisi


People also ask

What is the full name of C?

In the real sense it has no meaning or full form. It was developed by Dennis Ritchie and Ken Thompson at AT&T bell Lab. First, they used to call it as B language then later they made some improvement into it and renamed it as C and its superscript as C++ which was invented by Dr.

What do you mean by C?

C is a structured, procedural programming language that has been widely used both for operating systems and applications and that has had a wide following in the academic community. Many versions of UNIX-based operating systems are written in C.

Is C language easy?

C is a general-purpose language that most programmers learn before moving on to more complex languages. From Unix and Windows to Tic Tac Toe and Photoshop, several of the most commonly used applications today have been built on C. It is easy to learn because: A simple syntax with only 32 keywords.

What is C language used for?

C programming language is a machine-independent programming language that is mainly used to create many types of applications and operating systems such as Windows, and other complicated programs such as the Oracle database, Git, Python interpreter, and games and is considered a programming foundation in the process of ...


1 Answers

if you use xlApp.Visible = true; you can make the Excel application visible

I just ran your code and it seems to work as expected for my sample sheet

My sample Sheet

enter image description here

After I run your code, I see the filter being applied properly

enter image description here

enter image description here

Since you get 1 row it seems that the filter is not matching any rows and the row count of 1 may mean just the header row.

Few items to note are:

(1) The 5th Column is Column E (not Column F) i.e., Column A is the first column

(2) Cross check your data by manually adding the filter

like image 162
Subbu Avatar answered Sep 30 '22 00:09

Subbu