-
Notifications
You must be signed in to change notification settings - Fork 0
/
Form1.cs
138 lines (107 loc) · 3.96 KB
/
Form1.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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;
namespace Excell
{
public partial class frmParser : Form
{
string filePath = string.Empty;
ExcelReader excel;
public frmParser()
{
InitializeComponent();
}
private void BtnOpenExcelFile_Click(object sender, EventArgs e) {
using (OpenFileDialog openExcelFileDialog = new OpenFileDialog()) {
openExcelFileDialog.Title = "Seleccionar archivo Excel";
openExcelFileDialog.InitialDirectory = @"c:\";
openExcelFileDialog.Filter = "Excel files |*.xlsx;*,xlsx";
if (openExcelFileDialog.ShowDialog() == DialogResult.OK)
{
filePath = openExcelFileDialog.FileName;
FillcbxWorkSheets();
}
}
}
private void FillcbxWorkSheets()
{
excel = new ExcelReader(this.filePath);
List<string> workSheetsNames = excel.GetWorkSheetsNames();
cbxWorkSheets.DataSource = workSheetsNames;
}
private int GetSelectedWorkSheet()
{
return cbxWorkSheets.SelectedIndex + 1;
}
private void Button1_Click(object sender, EventArgs e)
{
if (filePath != string.Empty)
{
int workSheetSelectedNumber = GetSelectedWorkSheet();
LoadFields(workSheetSelectedNumber);
} else {
MessageBox.Show("Es necesario seleccionar el archivo excel para procesarlo!!! ");
}
}
private bool isValidRow(List<Field> row, int rowNumber)
{
if(row[0].UID == string.Empty)
{
rtxtWarnings.AppendText("Warning: " + "El campo UID se encuentra en blanco del renglón número: " + rowNumber.ToString() + " \n");
return false;
} else if(row[0].ObjectType == string.Empty)
{
rtxtWarnings.AppendText("Warning: " + "El campo ObjectType se encuentra del renglón número: " + rowNumber.ToString() + " \n");
return false;
} else {
return true;
}
}
public void LoadFields(int sheetNumber)
{
excel.LoadWorkSheet(sheetNumber);
int emptyRowsCount = 0;
int rowsAddedCount = 0;
for (int i = 2; i < excel.rowsCount; i++)
{
if (excel.IsRowEmpty(i))
{
emptyRowsCount++;
rtxtWarnings.AppendText("El renglón número: " + i.ToString() + " se encentra en blanco \n");
if (emptyRowsCount == 5)
{
break;
}
} else
{
emptyRowsCount = 0;
List<Field> row = excel.getRowFields(i);
if (isValidRow(row, i))
{
foreach (Field field in row)
{
field.AddField();
}
rowsAddedCount++;
rtxtNotifications.Text = "Se agregó correctamente el renglón número: " + i.ToString() +
"\n" + "\n" +
rowsAddedCount.ToString() + " Renglones agregados...";
}
}
}
MessageBox.Show("Se agregó la tabla");
}
private void FrmParser_FormClosed(object sender, FormClosedEventArgs e) {
excel.Release();
}
}
}