Zamykanie pliku Excel

0

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);
            
        }

    }
0
public String ReadCell(int i, int j)
        {
            i++;
            j++;
            try
            {
              if (ws.Cells[i, j].Value2 != null)
              {
                  return ws.Cells[i, j].Value2;
              }
              else
                  return "Brak wartosci w komorce.";
            }
            finally
            {
              wb.close();
            }
        }
0

Niestety nadal otwierają sie pliki i nie zamykają. Przy 12 otwartych procesach wyświetla się błąd (Microsoft Excel)"Cannot use object linking and embedding".

0

zamień wb.close(); na wb.close(0); excel.Quit();

0

Nadal się otwierają wszystkie i nie zamykają. Może problem leży w metodzie otworzenia pliku?

1 użytkowników online, w tym zalogowanych: 0, gości: 1