将Excel文件保存为只读(Interop.Excel)C#

时间:2018-04-05 10:22:23

标签: c# excel object

所有

我有以下代码打开指定的Excel文件删除第一行,然后将其保存为指定的CSV。

但是,当它保存CSV时,它会以只读格式保存。任何人都可以建议我如何确保文件不以只读格式保存。

修改 我试过了;     将ReadOnly属性设置为false。

我也知道可能会打开两个Excel实例,这可能导致只读状态来搜索以前的帖子,但包括myApp.Quit() 我相信它会关闭所有excel实例。

        public void DeleteRows(string OriginalFileName,String NewFileName)
    {
        Microsoft.Office.Interop.Excel.Application myApp;
        Microsoft.Office.Interop.Excel.Workbook myWorkBook;
        Microsoft.Office.Interop.Excel.Worksheet myWorkSheet;
        Microsoft.Office.Interop.Excel.Range range;
        myApp = new Microsoft.Office.Interop.Excel.Application();
        myWorkBook = myApp.Workbooks.Open(OriginalFileName, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
        myWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)myWorkBook.Worksheets.get_Item(1);
        range = (Microsoft.Office.Interop.Excel.Range)myWorkSheet.Application.Rows[1, Type.Missing];
        range.Select();
        range.Delete(Microsoft.Office.Interop.Excel.XlDirection.xlUp);
        myApp.DisplayAlerts = false;
        myWorkSheet.SaveAs(NewFileName, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookDefault, Type.Missing, Type.Missing, true, false, XlSaveAsAccessMode.xlNoChange, XlSaveConflictResolution.xlLocalSessionChanges, Type.Missing, Type.Missing);
        myWorkBook.Close(true);
        myApp.Quit();
    }
}
}

2 个答案:

答案 0 :(得分:0)

尝试在保存Excel文件时将ReadOnlyRecommended设置为false。

答案 1 :(得分:0)

解决方案是将myWorkBook.Close(true);更改为myWorkBook.Close(false);