C++ 在VC+中创建多个Excel工作表+;
如何在VC++中创建包含多个工作表的Excel文件并保存。Excel从2003年起支持XML。XML可以有多个工作表 您可以从VC++生成XML文件。此XML文件不能通过Excel以Excel工作表的形式打开 要查找XML的格式/结构,请创建一个excel文件,并在两张工作表中输入几个单元格的数据。然后将文件另存为XMLC++ 在VC+中创建多个Excel工作表+;,c++,excel,visual-c++,office-interop,C++,Excel,Visual C++,Office Interop,如何在VC++中创建包含多个工作表的Excel文件并保存。Excel从2003年起支持XML。XML可以有多个工作表 您可以从VC++生成XML文件。此XML文件不能通过Excel以Excel工作表的形式打开 要查找XML的格式/结构,请创建一个excel文件,并在两张工作表中输入几个单元格的数据。然后将文件另存为XML 您可以编写代码来生成类似的XML。请参阅和/或以找到要调用的正确方法。工作簿界面中的SaveAs和SaveCopyAs方法可能就是您要查找的方法。答案是XL->Workshee
您可以编写代码来生成类似的XML。请参阅和/或以找到要调用的正确方法。工作簿界面中的SaveAs和SaveCopyAs方法可能就是您要查找的方法。答案是
XL->Worksheets->Add()代码>工作表按相反顺序添加
#import "C:\Program Files (x86)\Common Files\microsoft shared\OFFICE12\mso.dll"
#import "C:\Program Files (x86)\Common Files\microsoft shared\VBA\VBA6\VBE6EXT.OLB"
#import "C:\Program Files (x86)\Microsoft Office\Office12\excel.exe" \
rename("DialogBox","ExcelDialogBox") rename("RGB","ExcelRGB") \
exclude("IFont","IPicture")
#include <stdexcept>
#include <iostream>
int main()
{
CoInitialize(NULL);
try
{
Excel::_ApplicationPtr XL;
HRESULT hr = XL.CreateInstance(L"Excel.Application");
Excel::_WorkbookPtr workbook = XL->Workbooks->Add(Excel::xlWorksheet);
Excel::_WorksheetPtr worksheet = XL->ActiveSheet;
worksheet->Name = "last page";
worksheet = XL->Worksheets->Add(); // adding worksheets!!
worksheet->Name = "other page";
worksheet = XL->Worksheets->Add();
worksheet->Name = "some page";
worksheet->SaveAs("c:\\test.xls");
workbook->Close();
XL->Quit();
}
catch(_com_error &ce)
{
std::cout<<"caught" << std::endl;
}
CoUninitialize();
system("pause");
return 0;
}
导入“C:\Program Files(x86)\Common Files\microsoft shared\OFFICE12\mso.dll”
#导入“C:\Program Files(x86)\Common Files\microsoft shared\VBA\VBA6\VBE6EXT.OLB”
#导入“C:\ProgramFiles(x86)\Microsoft Office\Office12\excel.exe”\
重命名(“DialogBox”、“ExcelDialogBox”)重命名(“RGB”、“ExcelRGB”)\
排除(“IFont”、“IPicture”)
#包括
#包括
int main()
{
共初始化(空);
尝试
{
Excel::_应用程序PTR XL;
HRESULT hr=XL.CreateInstance(L“Excel.Application”);
Excel::_WorkbookPtr工作簿=XL->工作簿->添加(Excel::XL工作表);
Excel::_Worksheetpttrworksheet=XL->ActiveSheet;
工作表->名称=“最后一页”;
工作表=XL->工作表->添加();//添加工作表!!
工作表->名称=“其他页面”;
工作表=XL->工作表->添加();
工作表->Name=“某些页面”;
工作表->另存为(“c:\\test.xls”);
工作簿->关闭();
XL->Quit();
}
捕获(com错误和ce)
{
std::coutXL->Workbooks->Add(Excel::xlsheet);Excel:_worksheetpttrpsheet=XL->ActiveSheet;pSheet->SaveAs(szExcelFileName.GetBuffer());我正在使用此代码保存XL工作表,但它仅保存ActiveSheet。我需要在xls文件中保存所有工作表,而不是:pSheet->SaveAs(szExcelFileName.GetBuffer());执行:XL->ActiveWorkbook->SaveAs(szExcelFileName.GetBuffer());XL->ActiveWorkbook->SaveAs(szExcelFileName.GetBuffer());这是无效的方法。ActiveWorkbook应该是XL->工作簿的一部分