通过MFC向Excel写入数据代码:
CWorkbooks books;
CWorkbook book;
CApplication app;
CWorksheets sheets;
CWorksheet sheet;
CRange range;
COleVariant vResult;
COleVariant covOptional((long) DISP_E_PARAMNOTFOUND,VT_ERROR);
if (!app.CreateDispatch(_T("Excel.Application")))
{
AfxMessageBox(_T("无法启动服务器"));
return ;
}
books.AttachDispatch(app.get_Workbooks());
//得到Workbook
book.AttachDispatch(books.Add(covOptional),true);
//得到Worksheets
sheets.AttachDispatch(book.get_Worksheets(),true);
sheet.AttachDispatch(sheets.get_Item(_variant_t("sheet1")),true);
range=sheet.get_Range(COleVariant(_T("A1")),COleVariant(_T("A1")));
range.put_Value2(COleVariant(_T(" Write data to excel by MFC")));
// for (long i=0;i<11;i++)
// range.put_Item(_variant_t((long)2),_variant_t((long)i),_variant_t((long)i));//会报错,不知问题为何
range=sheet.get_Range(COleVariant(_T("A1")),COleVariant(_T("B1")));
range.Merge(_variant_t((long)0));
range.put_ColumnWidth(_variant_t((long)15));
range=sheet.get_Range(COleVariant("A1"),COleVariant("A1"));
//range.put_VerticalAlignment(_variant_t((long)-4018));//不能设置类range的put_VerticalAlignment属性
range.put_HorizontalAlignment(_variant_t((long)-4131));
range.put_RowHeight(COleVariant("25"));
app.put_Visible(TRUE);
book.SaveCopyAs(COleVariant("e:\test_file.xlsx"));
book.put_Saved(TRUE);
books.Close();
app.Quit();
range.ReleaseDispatch();
sheet.ReleaseDispatch();
sheets.ReleaseDispatch();
book.ReleaseDispatch();
books.ReleaseDispatch();
app.ReleaseDispatch();
CWorkbooks boo