gpt4 book ai didi

c++ - 从 C++ 打开 Excel 文件时打印区域丢失

转载 作者:行者123 更新时间:2023-11-30 03:57:26 31 4
gpt4 key购买 nike

我遇到一个非常奇怪的错误 - 从 C++ 打开 Excel 模板时打印区域丢失。

我有一个 Excel 模板文件 - “MyFile.xltx”。在文件的其中一张纸中,我设置了一个打印区域。如果我通过在资源管理器中双击打开文件,一切都按预期工作——打印区域仍然存在。但是,如果我在我的 C++ 代码中打开该文件,打印区域将被删除。其他一切看起来都是文件,唯一缺少的是打印区域。

您拥有以下代码 - 尽可能准系统。我在我的程序中使用自动生成的 Excel 帮助程序 - 例如“打开”调用映射到一个简单的“InvokeHelper(0x2aa, ...”调用。(我尝试使用较新的 0x783 调用 - 带有两个额外的参数 - 但我得到了相同的结果。)

我正在运行 Microsoft Office 2010 和 Visual Studio 2010。

我不是 COM 专家,所以也许我做错了什么。但这是一个简单的打开,所以我认为这是一个奇怪的错误......如果有任何帮助,我将不胜感激! :-)

/来自瑞典的安德斯

//
// get CLSID for Excel
//

CLSID clsid;
if (FAILED (CLSIDFromProgID (L"Excel.Application", &clsid))) {
MessageBox ((HWND) NULL, "Can't find Excel", "", MB_OK);
return;
}

//
// attach to a running Excel application - or start one if there is no
// running instance
//

_Application oExcelApp;

IUnknown *pUnk;
if (FAILED (GetActiveObject (clsid, NULL, (IUnknown **) &pUnk))) {
if (!oExcelApp.CreateDispatch (clsid)) {
MessageBox ((HWND) NULL, "Can't start Excel", "", MB_OK);
return;
}
}
else {
LPDISPATCH lpDisp = NULL;
pUnk->QueryInterface (IID_IDispatch, (void **) &lpDisp);
pUnk->Release();
oExcelApp.AttachDispatch (lpDisp);
}

//
// call the Open method for the Workbooks collection - to open the file
//

COleVariant vOpt ((long) DISP_E_PARAMNOTFOUND, VT_ERROR);

Workbooks oBooks = oExcelApp.GetWorkbooks ();
_Workbook oExcel = oBooks.Open ("MyFile.xltx", vOpt, vOpt, vOpt, vOpt,
vOpt, vOpt, vOpt, vOpt, vOpt, vOpt, vOpt, vOpt);

//
// make the Excel workbook visible
//

oExcelApp.SetUserControl (TRUE);
oExcelApp.SetVisible (TRUE);

最佳答案

我在调查我的 excel 的类似问题时看到了你的问题。当我用 excel 打开文件时,打印区域工作正常,但如果我通过 (AutoIt) 脚本访问它们,文件缺少打印区域

经过大量搜索工作后,我发现问题是我使用的是荷兰语版本的 excel 而不是英语,这意味着打印区域(这是一个定义的单元格范围,位于(公式 > 名称Manger) 称为 Print_area) 未被识别,而是 excel 正在寻找单元格范围:“Afdrukbereik”(荷兰语为 printarea)。

当从 C++ 打开文件时,您可以查看它是否设置了 print_area 以及是否重新创建了为其创建定义名称的打印区域...

我希望我说得有道理并且它可以帮助你。

关于c++ - 从 C++ 打开 Excel 文件时打印区域丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27989461/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com