请帮帮我。
我想使用asp(vb脚本)创建具有数据和完全写入权限(Everyone用户)的excel文件。
Set objExcel = CreateObject("Excel.Application") Set objWorkbook = objExcel.Workbooks.Add() objWorkbook.SaveAs(strFileName)
我使用此方法创建excel文件,但此excel文件获得readonly权限。 那么,我需要如何处理写入权限以及如何将数据插入此Excel文件中。
由于
答案 0 :(得分:0)
我不确定为什么它被设置为只读,但您可以使用SetAttr
函数将文件权限更改为可写。 This page有更多信息和一些示例代码。
答案 1 :(得分:0)
我之前遇到过这种情况。完成后,您必须退出excel或关闭工作簿。只要Excel正在运行且工作簿处于打开状态,它将始终是只读的。一旦你的脚本完成了对excel文件所需的操作,保存它(就像你正在做的那样),但也关闭它。在完美的世界中,关闭excel对象并将其设置为空。尝试在脚本末尾添加以下内容:
objWorkbook.Close
Set objWorkbook = Nothing '<-- not needed if at the end of the script.
objExcel.Close
Set objExcel = Nothing '<-- not needed if at the end of the script.
请记住,Excel本质上是一个单一的用户环境。
答案 2 :(得分:0)
strPathExcel="c:\myExcelFile.xlsx"
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = False
Set objWorkbook = objExcel.Workbooks.Add()
objWorkbook.SaveAs strPathExcel
'========== change the premission for Everyone to Modify ===============
CreateObject("Wscript.Shell").Run "ICACLS """& strPathExcel & """ /grant everyone:M ",0,False
'====== how to write inside excel sheet you just create and save then close =======
Set objSheet = objExcel.ActiveWorkbook.Worksheets(1)
' write to a cell.
objSheet.Cells(3, 2).Value = "Test"
' Add a row before row 5.
objSheet.Range("B5").EntireRow.Insert
' Label the new rows. Row 4 is unchanged, but what was row 5 is now row 6.
objSheet.Cells(4, 1).Value = "Row 4"
objSheet.Cells(5, 1).Value = "Row 5"
objSheet.Cells(6, 1).Value = "Row 6"
' Save the change and quit.
objExcel.ActiveWorkbook.Save
objExcel.ActiveWorkbook.Close
objExcel.Application.Quit