.xslm в .xslx с использованием workbook.SaveAs () в Interop.Excel, выполняется без проблем, но без сохранения файла - PullRequest
0 голосов
/ 08 апреля 2011

Interop.Excel версия 12

Office Excel 2007

Я работал над кодом, чтобы открыть файл .xslm и затем преобразовать (сохранить) его как .xslx.Между тем мне тоже нужно немного обработать, но это не имеет значения.Ниже приведен код:

namespace Exceltest
{
    class Program
    {
        static void Main(string[] args)
        {

            Application oXL = null;
            oXL = new Application();

            oXL.Visible = false;
            oXL.DisplayAlerts = false;

            try
            {
                Workbook book = oXL.Workbooks.Open("E:\\CorrectPF1.xlsm", 0, true, 5, "access123", "", true,
                                                   XlPlatform.xlWindows, "\t", false, false, 0, true, null, XlCorruptLoad.xlNormalLoad);

                Worksheet worksheet = (Worksheet)book.Sheets["Resource allocation"];
                worksheet.Activate();

                oXL.Visible = false;
                oXL.DisplayAlerts = false;

                book.SaveAs("E:\\PF1.xlsx", XlFileFormat.xlOpenXMLWorkbook,
                                            "", Type.Missing, Type.Missing, Type.Missing, XlSaveAsAccessMode.xlNoChange,
                                                XlSaveConflictResolution.xlLocalSessionChanges, Type.Missing, Type.Missing,
                                                Type.Missing, false);
            }
            catch (Exception  ex)
            {
             //Handling exception here
            }

        }
    }
}

Этот код выполняется без проблем (без каких-либо исключений), но файл с расширением .xslx не сохраняется.Я обнаружил, что это работает для некоторого набора файлов, но не для других.Скажем, он не работает для файла с именем PF1.xslm.Я могу открыть PF1.xslm в Office Excel и сохранить его как .xslx.То же самое можно предположить и для программной работы.

1 Ответ

0 голосов
/ 08 апреля 2011

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

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