Я ищу способ по сути взять папку с файлами Excel, которые являются старым расширением файла 2003 года .xls, и преобразовать их в .xlsm. Я понимаю, что вы можете самостоятельно войти в таблицу Excel и сделать это вручную, но есть ли способ сделать это с помощью кода? Конкретно с использованием какой-либо библиотеки?

11
Nick 20 Сен 2013 в 00:43
; для этого требуется установка MS office 2007 для использования этих библиотек взаимодействия.
 – 
Manish Jain
19 Май 2019 в 06:56
@ManishJain, если вы перейдете по предоставленной мной ссылке, вы увидите, что можете загрузить их, не установив ms office.
 – 
crthompson
21 Май 2019 в 00:28
Когда я переходил по опубликованной вами ссылке, я получил сообщение «К сожалению, эта загрузка больше не доступна». Пожалуйста, отметьте и укажите другой.
 – 
Manish Jain
24 Май 2019 в 09:21
Конечно же. Он, должно быть, исчез всего несколько дней назад, потому что он был, когда я проверил его ранее в этом месяце. Вероятно, поддержка 2007 года прекратилась. Файлы 2010 года, однако, доступны. Если вы действительно вам нужен 2007 год, вам, вероятно, придется найти его из неофициального источника.
 – 
crthompson
24 Май 2019 в 18:48

1 ответ

Лучший ответ

Это не мой код, но я использовал ClosedXML раньше, и это потрясающе. Я нашел это в FAQ, спрашивая, поддерживает ли он Excel 2003, который, похоже, должен работать для вас ...

Чтобы уточнить, здесь используется библиотека Office Interop, а не closedXML, но я упомянул об этом на случай, если вам потребуются какие-либо дополнительные изменения.

public void Convert(String filesFolder)
{
     files = Directory.GetFiles(filesFolder);

     var app = new Microsoft.Office.Interop.Excel.Application();
     var wb = app.Workbooks.Open(file);
     wb.SaveAs(Filename: file + "x", FileFormat: Microsoft.Office.Interop.Excel.XlFileFormat.xlOpenXMLWorkbook);
     wb.Close();
     app.Quit();
}

Вот ссылка

Надеюсь, это поможет: D

19
crthompson 24 Май 2019 в 18:50
2
Имейте в виду, что Interop требует, чтобы на сервере был установлен Excel, и это не будет работать в Azure. См .: stackoverflow.com/questions/12375943/…
 – 
Savage
18 Окт 2019 в 17:45