Witam wszystkich!
Piszę właśnie program, który wertuje katalogi, wybiera pliki .xlsx i porównuje daną komórkę z pliku ze zmienną. Na małej ilości plików .xlsx program działa, lecz gdy w grę wchodzi kilkadziesiąt plików to program upada a w menadżerze zadań widnieją procesy excel.exe. Problem polega na tym że nie wiem gdzie wpisać funkcje excel.Quit()/wb.Close().
Mój kod:
class Excel
{
String path = "";
_Application excel = new _Excel.Application();
Workbook wb;
Worksheet ws;
public Excel(String path, int Sheet)
{
this.path = path;
wb = excel.Workbooks.Open(path);
ws = wb.Worksheets[Sheet];
}
public String ReadCell(int i, int j)
{
i++;
j++;
if (ws.Cells[i, j].Value2 != null)
{
return ws.Cells[i, j].Value2;
}
else
return "Brak wartosci w komorce.";
}
}
public partial class Path_form : Form
{
public Path_form()
{
InitializeComponent();
}
public String OpenFile(String path)
{
Excel excel = new Excel(path, 1);
return excel.ReadCell(1, 5);
}
public String GetPath(String path, string kerg)
{
String mask = "*.xlsx";
String[] files = Directory.GetFiles(path, mask, SearchOption.AllDirectories);
foreach (String file in files)
{
path = Path.GetFullPath(file);
String result = OpenFile(path);
if (kerg == result)
{
MessageBox.Show(path);
}
}
return path;
}
private void button1_Click(object sender, EventArgs e)
{
String path = pathForm.Text;
String kerg = kergForm.Text;
GetPath(path, kerg);
}
}