Office 365 и Excel - PullRequest
       2

Office 365 и Excel

0 голосов
/ 10 февраля 2020

Итак, новичок здесь. У меня есть программа, которая была разработана в Visual Studio. Основная функция c заключается в извлечении информации из нескольких баз данных и предоставлении списка, из которого можно выбрать параметры, для экспорта в виде файла Excel со списком. Он имеет «шаблонный» файл Excel с соответствующим форматированием и информацией, который он сначала копирует, а затем записывает в эту копию. Он использует общие файлы в сети и сохраняет этот новый файл в сети. Раньше он функционировал довольно хорошо, но теперь наш офис перешел на более новую версию Windows 10 и 7, и по пути мы также выбрали Office 365, и теперь мы в курсе этого. Проблема в том, что когда программа теперь захватывает файлы Excel, она продолжает выдавать ошибку, что файл заблокирован для редактирования, и не позволяет перезаписать или получить доступ к файлу. Обновление Office 365 изменило только его работоспособность. Первоначально я думал, что это связано с ОС, но это происходит как с 7, так и с 10 пользователями. И он также работал на компьютере, на котором не было текущего обновления Office, без ошибок, и как только он обновлялся за ночь до текущего Office, он ломался. Что-то изменилось в Excel, что может привести к конфликту с этим? Можно ли добавить строку, чтобы обойти эту проблему? Я попытался readonly = False, notify = false, ignorereadyonlyrecommended = true, я попытался добавить thread.sleep (500) на случай задержки между обновлениями файла блокировки на сервере. Может быть, я просто упускаю очевидное решение.

Обновление:

Dim ExcelApp As New Excel.Application 'create new excel application
        ***Dim ExcelWkBk = ExcelApp.Workbooks.Open(filepath, [ReadOnly]:=False, Notify:=False) 'open the unitfile***
        Try
            Dim ExcelSheet As Excel.Worksheet = ExcelWkBk.Sheets("Distributor") 'open the distributor sheet
            ExcelApp.Visible = False 'make the application invisible
            ExcelApp.DisplayAlerts = False 'don't display any alerts, this operation is meant to silent to the user
            ExcelApp.ScreenUpdating = False 'this slows down the process so I turned off updates
            ExcelSheet.Range("A" & columnRow, "P" & aftAdjRow - 1).Name = "Unit" 'specifies the region which is the unit data
            ExcelSheet.Range("G" & titleRow + 1, "K" & aftAdjRow).Value2 = ExcelSheet.Range("G" & titleRow + 1, "K" & aftAdjRow).Value2 'refreshes the unit number values
            ExcelSheet.Range("G" & columnRow + 1, "G" & aftAdjRow).NumberFormat = "0"
            ExcelSheet.Range("I" & columnRow + 1, "K" & aftAdjRow).NumberFormat = "$#,##0;$-#,##0;$0;" 'custom format for the prices
            ExcelSheet.Rows(columnRow).EntireRow.Hidden = True 'hide column and config rows
            'ExcelSheet.Rows(configRow).EntireRow.Hidden = True
            'ExcelSheet.Rows(configRow + 1).EntireRow.Hidden = True
            ExcelSheet.Columns("E").EntireColumn.WrapText = True
            ExcelSheet.Range("I" & titleRow, "K" & titleRow).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter 'center prices column
            ExcelSheet.Range("Unit").VerticalAlignment = Excel.XlVAlign.xlVAlignTop 'change alignment
            ExcelSheet.Range("A" & columnRow, "P" & distRowCnt + 8).Font.Name = "Courier New" 'change font
            ExcelSheet.Range("A" & columnRow, "P" & distRowCnt + 9).Font.Size = 10

Dim ExcelWkBk = ExcelApp.Workbooks.Open(filepath, [ReadOnly]:=False, Notify:=False) 'open the unitfile - Is where it flags the error

System.Runtime.InteropServices.COMException: ''testing1.xls' cannot be accessed. The file may be corrupted, located on a server that is not responding, or read-only.'

Если я пытаюсь сохранить новый файл, перезаписать существующий файл или открыть существующий файл, он ведет себя так, как будто файл заблокирован для редактирования или только для чтения , даже если нет причин для его блокировки или открытия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...