This repository has been archived by the owner on Sep 6, 2023. It is now read-only.
/
ExcelSheetParser.cs
101 lines (81 loc) · 2.85 KB
/
ExcelSheetParser.cs
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Excel = Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;
namespace deliverynote2xml
{
class ExcelSheetParser
{
//Path to Excel file...
private string Path;
public ExcelSheetParser(string path)
{
this.Path = @path;
}
public string GetDiscounts(string customerCode)
{
Excel.Application xlApp = null;
Excel.Workbook xlWorkBook = null;
Excel.Worksheet xlWorkSheet = null;
Excel.Range xlRange = null;
Excel.Range colRange = null;
Excel.Range resultRange = null;
string discount = "";
try
{
xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Open(this.Path);
xlWorkSheet = xlWorkBook.Sheets[1];
xlRange = xlWorkSheet.UsedRange;
// Get the range object where you want to search from
colRange = xlWorkSheet.Columns[1, Type.Missing];
// Search search String in the range, if find result, return a range
resultRange = colRange.Find(What: customerCode,
LookIn: Excel.XlFindLookIn.xlValues,
LookAt: Excel.XlLookAt.xlWhole,
SearchOrder: Excel.XlSearchOrder.xlByRows,
SearchDirection: Excel.XlSearchDirection.xlNext);
if (resultRange != null)
{
int rowIndex = resultRange.Row;
discount = xlRange.Cells[rowIndex, 10].value2 ?? "";
}
else
{
discount = "CUSTOMER_NOT_FOUND";
}
}
catch (Exception)
{
throw;
}
finally
{
//Release com objects to fully kill excel process from running in the background
CodeManager.ReleaseComObject(xlRange);
xlRange = null;
CodeManager.ReleaseComObject(xlWorkSheet);
xlWorkSheet = null;
CodeManager.ReleaseComObject(colRange);
colRange = null;
CodeManager.ReleaseComObject(resultRange);
resultRange = null;
//Close and release
xlWorkBook.Close();
CodeManager.ReleaseComObject(xlWorkBook);
//Quit and release
if (xlApp != null)
{
xlApp.Quit();
}
CodeManager.ReleaseComObject(xlApp);
xlApp = null;
GC.Collect();
}
return discount;
}
}
}