Member 10192073 Ответов: 2

Как проверить что файл excel открыт и если открыт то закрыть в C#


Привет, мне нужна помощь, как я могу проверить, что файл Excel открыт, который я собираюсь просмотреть, чтобы загрузить, я хочу конкретный файл Excel, если он открыт, а затем сохранить автоматически и закрыть этот файл excel, потому что у меня есть ошибка, когда я собираюсь загрузить данные excel в таблицу данных.
следующее сообщение об ошибке приходит

Цитата:
Компонент Microsoft Access database engine не может открыть или записать этот файл ". Он уже открыт исключительно другим пользователем, или вам нужно разрешение на просмотр и запись его данных


Что я уже пробовал:

Я пытался закрыть файл excel, который я собираюсь загрузить данные, но я хочу проверить, если открыть, то закрыть, этот код не работает

Microsoft.Office.Interop.Excel.Application Excel = new Microsoft.Office.Interop.Excel.Application();
                    Microsoft.Office.Interop.Excel.Workbook workbook;
                    Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
                    object misValue = System.Reflection.Missing.Value;
                    workbook = Excel.Workbooks.Add(txtBrowse.Text);
                    workbook.Close(false, misValue, misValue);

Richard MacCutchan

Вы не можете закрыть файл, используемый другим приложением.

Member 10192073

на моем рабочем столе это так, с помощью оконного приложения я просматриваю excel, но я хочу автоматически закрываться кодом, когда я просматриваю

Karthik_Mahalingam

Всегда использовать  Ответить  кнопка, чтобы отправить комментарии/запрос пользователю, чтобы пользователь получил уведомление и ответил на ваш текст.

2 Ответов

Рейтинг:
1

The Praveen Singh

Проверьте, открыта ли она, как

try
{
   Stream s = File.Open(FileName, FileMode.Open, FileAccess.Read, FileShare.None);

   s.Close();

   return true;
}
catch (Exception)
{
   return false;
}


Закройте Excel как:-
using Excel = Microsoft.Office.Interop.Excel;

# declare the application object
Excel.Application xl = new Excel.Application();

# open a file
Excel.Workbook wb = xl.Workbooks.Open("some_file.xlsx");

# do stuff ....

# close the file
wb.Close();

# close the application and release resources
xl.Quit();


Member 10192073

но он не закрывает мой файл excel. я хочу, чтобы мой файл был закрыт, выше контрольного кода все в порядке, но я хочу закрыть свой правильный файл excel

Member 10192073

bool IsFileClose = CheckExcelOpen();
если (!IsFileClose)
{
Microsoft.Офис.Взаимодействие.Превосходить.Приложение xl = новый Microsoft.Офис.Взаимодействие.Превосходить.Приложение();
Microsoft.Офис.Взаимодействие.Превосходить.Рабочая тетрадь wb = xl.Workbooks.Открыть(txtBrowse.Text);
ВБ.Рядом();
xl.бросить курить();
}

Рейтинг:
1

Sagar Tajpara

защищенный виртуальный bool IsFileLocked(файл FileInfo)
{
Файлового потока поток = нулевой;

пробовать
{
поток = файл.Открыть(FileMode.Открой, FileAccess.Читай, Файлообменник.);
}
catch (IOException ex)
{
//файл недоступен, потому что он есть:
//все еще пишется кому-то
//или обрабатывается другим потоком
//или не существует (уже обработано)
вернуть true;
}
наконец
{
if (stream != null)
течение.Закрывать();
}

//файл не заблокирован
возвращать false;
}


Richard Deeming

Как было сказано в решении 1 - ЧЕТЫРНАДЦАТЬ МЕСЯЦЕВ НАЗАД!