У нас есть старый и довольно большой лист Excel. Он сохраняется каждый день несколько раз, и кажется, что раз в неделю лист искажается.

Среда:

  • Все используют x64 build of office

  • он использует несколько плагинов, в том числе Bloomberg и внутренний плагин

  • он использует несколько RTD, включая Bloomberg и один в доме

  • мы используем последнюю версию Office и Excel

  • смесь машин Win7 и Win10 (также x64).

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

Большинство (все?) времени, когда он поврежден, он вообще не открывается или вылетает, когда вы делаете что-то вроде CRTL-F .

Мы сохраняем лист несколько раз в день, и мы хотели бы проверить каждое сохранение, если могли.

1 ответ1

1

Я бы лично предложил написать скрипт powershell.

Ниже приведен основной пример того, как открыть все таблицы на рабочем столе.

Если файл в порядке / открываем, скрипт выведет имя 1-го листа на электронную таблицу.

Если файл поврежден / недоступен, powershell выдаст исключение.

Это может быть легко расширено, чтобы дать имя файла и статус в таблице.

$user = $env:USERNAME
$Location = "c:\users\$user\desktop\"

$ExcelFiles = Get-ChildItem -Path $Location -Filter *.xls*

Foreach ($ExcelFile in $ExcelFiles){
    $Excel = New-Object -ComObject Excel.Application
    $Workbook = $Excel.Workbooks.Open($ExcelFile.FullName)
    $workSheet = $Workbook.Sheets.Item(1)
    $WorkSheet.Name
}

При этом изучение проблем с самой таблицей также было бы хорошей идеей.

Вещи, которые я заметил, вызывают проблемы с большими электронными таблицами, это большое количество пользовательских форматов по всей электронной таблице (различные шрифты, цветной текст и т.д.).

Возможно, стоит подумать о том, чтобы начать новую электронную таблицу и объединить информацию из двух в другой, если это необходимо?

Надеюсь это поможет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .