操作excel的疑惑
我在VS2003环境下操作excel2003 文件写入正常,但是就是在外打开查看里边内容的时候,在打开生成的文件的时候提示我 ****.xls处于锁定状态,只能读,不能修改,为什么,,求解~~~
程序代码如下:
CApplication ExcelApp;
CWorkbooks MyBooks;
CWorkbook MyBook;
CWorksheets Mysheets;
CWorksheet Mysheet;
CRange range;
COleVariant
covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
CoInitialize(NULL);
if(!ExcelApp.CreateDispatch("Excel.Application",NULL))
{
AfxMessageBox("创建Excel服务失败!");
exit(1);
}
ExcelApp.put_Visible(false);
char path[MAX_PATH];
GetCurrentDirectory(MAX_PATH,path);
CString strPath = path;
MyBooks.AttachDispatch(ExcelApp.get_Workbooks(),true);
MyBook.AttachDispatch(MyBooks.Add(_variant_t(covOptional)));
//得到Worksheets
Mysheets.AttachDispatch(MyBook.get_Worksheets(),true);
//得到sheet1
Mysheet.AttachDispatch(Mysheets.get_Item(_variant_t("sheet1")),true);
Mysheet.put_Name("第2页");
//所有单元格颜色设为白色
range.AttachDispatch(Mysheet.get_Cells());
range.ClearContents();
range.ReleaseDispatch();
//设置一行一列的单元值
CString aa,bb,cc;
range.AttachDispatch(Mysheet.get_Range(VT("A1"),VT("C1001")));
range.ClearFormats();
for (int i = 2; i < 1000; i++)
{
range.put_Item(_variant_t(i),_variant_t(2),_variant_t(i-1));
range.put_Item(_variant_t(i),_variant_t(3), VT("37122368~37097735~"));
}
CString name;
name = "TestExcel17.xls";
strPath = path + name;
Mysheet.SaveAs(strPath,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional);
ExcelApp.put_Visible(true);
range.ReleaseDispatch();
Mysheet.ReleaseDispatch();
Mysheets.ReleaseDispatch();
MyBooks.ReleaseDispatch();
MyBook.ReleaseDispatch();
ExcelApp.ReleaseDispatch();