Member 14367720 Ответов: 1

Как сохранить активный файл excel в другом месте с другим именем с помощью C#


Я загружаю рабочую книгу Excel "ABC.xlsx-из локальной папки .
Я беру этот файл, добавляю 2 столбца на рабочий лист и сохраняю файл с помощью c# microsoft office interop excel dll.
Теперь проблема в том, что я хочу сохранить этот файл в другом каталоге с другим именем.
Я могу сохранить это в другой папке каталога, используя функцию save as, но имя файла я не могу изменить.
Пожалуйста, подскажите мне, как я могу сохранить этот активный файл в другом месте с другим именем.

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

*********Инициировать объекты Excel и загружать их из локального каталога********
строки путь_к_файлу = "C:\Test\ABC.xlsx"
Превосходить.Приложение xlApp = новый Excel.Приложение();
Превосходить.Рабочая тетрадь xlWorkbook = xlApp.Workbooks.Открыть(путь к файлу);
Превосходить._Worksheet xlWorksheet = xlWorkbook.Листы[1];
Превосходить.Диапазон xlRange = xlWorksheet.UsedRange;

*******Добавить столбцы********
xlWorksheet.Ячейки[1, 14] = "StatusResult";
xlWorksheet.Ячейки[1, 15] = "Примечания";
xlWorksheet.Ячейки[1, 16] = "Проверено";

******Добавьте значения в эти столбцы********

*******Создайте/проверьте выходной каталог и сохраните excel в выходной папке*******
строка OutputDir = "C:\Test\Output\";
строковое имя файла = "ABC.xlsx";
если (!Directory.Exists(OutputDir))
{
Каталог.CreateDirectory(OutputDir);
}

xlWorkbook.Сохранить Как(OutputDir + Имя Файла, В Формате Excel.XlFileFormat.xlWorkbookDefault, тип.Отсутствует, Тип.Отсутствует, правда, ложь, в формате Excel.XlSaveAsAccessMode.xlNoChange, Excel.XlSaveConflictResolution.xlLocalSessionChanges, тип.Отсутствует, Тип.Отсутствует);

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

CHill60

В какой строке появляется исключение?

1 Ответов

Рейтинг:
1

RickZeeland

Смотрите ответ здесь: Проблема с Excel.[рабочая тетрадь.SaveAs()] в C#[^]

Цитата:
Формат файла для xlsx-xlOpenXMLWorkbook