操作-c#打开excel后在手动打开excel两个excel句柄一样

问题描述

c#打开excel后在手动打开excel两个excel句柄一样

我又重新编辑了一下

1.打开软件
2..点文件打开
3.打开psy++

4.手动打开了一个excel


5.spy++查看

这个时候我软件本来是要操作之前打开的report.xlsx, 就变成了操作新建 Microsoft Office Excel 2007 Workbook.xlsx了。。。

下面是打开程序

 public static Excel._Application reportExcel;
        public static Excel._Workbook reportWorkbook;
        public static Excel._Worksheet reportSheet;
                public static void openReportExcel()
        {
           // string fileName="";//= Application.StartupPath + @"cfg出货记录.xlsx";
            if(Form1.companySelect==0)
            {
                reportExcelPath = Application.StartupPath + @"cfgreanreport.xlsx";
            }
            else
            {
                reportExcelPath = Application.StartupPath + @"cfgbenanreport.xlsx";
            }
            reportExcel = new Excel.Application();
            try
            {
                reportExcel.Visible = true;
                reportWorkbook = (Excel._Workbook)reportExcel.Workbooks.Open(reportExcelPath,
                Missing.Value,
                Missing.Value,
                Missing.Value,
                Missing.Value,
                Missing.Value,
                Missing.Value,
                Missing.Value,
                Missing.Value,
                Missing.Value,
                Missing.Value,
                Missing.Value,
                Missing.Value,
                Missing.Value,
                Missing.Value
                );
                openReportResult = 1;
            }
            catch (Exception err)
            {
                openReportResult = 2;
                MessageBox.Show(Convert.ToString(err));
            }
        }

解决方案

两个窗口句柄肯定不同。不知道“句柄精灵”是什么玩艺,也许它有bug。建议你用spy++去看看。

解决方案二:

用 spy++ 查看(菜单:搜索->查找窗口...),类名为:NetUIHWND 的句柄是不一样的。如果查看到其它类,如:EXCEL7,其句柄确实是一样的。
所以, 句柄精灵 对 Excel 操作时可能出现 Bug。

解决方案三:

用spy++最简单的是直接拖它界面上的那个图标,拖到哪个窗口就会显示那个窗口的句柄,使用起来非常方便。

时间: 2024-12-09 11:29:11

操作-c#打开excel后在手动打开excel两个excel句柄一样的相关文章

请教swt操作打开excel后,在非swt打不开excel文件了

问题描述 在eclipse中使用org.eclipse.swt.ole.win32.OLE来操作excel,然后在SWT外部就不能打开excel文件了请教如何规避这个问题,谢谢 解决方案 解决方案二:你是如何操作的,swt可能会把excel基础信息变更,比如文件作者.摘要这种信息,要看你具体代码解决方案三:就是以下代码使用SWT来加载EXCEL,于此同时就不能在桌面上双击Execl文件打开来正常使用excel的功能了哪位大神帮帮我看看,谢谢publicclassmain{publicstatic

winform如何实现导出excel后,打开该excel文件,并在里面再次进行操作?

问题描述 现在业务有个需求.导出2份excel后(内容不同,一份是数据,一份是图片),再将两份的内容统一到一份excel里面,内容分为两个不同的sheet.小弟没对excel操作那么深入.最多也就知道如何导出.可是导出后的读取以及后续操作.实在不知道该如何做!请大家帮个忙!谢谢 解决方案 解决方案二:帮帮忙啊~

dsoframer.ocx打开EXCEL后,程序外部的EXCEL打开锁死现象

问题描述 dsoframer.ocx打开EXCEL后,程序外部的EXCEL打开锁死现象.请高手帮忙解决一下,万分感谢! 解决方案 解决方案二:程序内部嵌套的excel操作的同时在外部打开excel,两个同时操作不了,经常报错或卡死.解决方案三:正常,占用了同一个资源.IO有没有关闭.那个如果非要实现这样的功能,那就把资源的部分或者全部copy一份处理之后再copy回去,解决方案四:可以把要打开的excel复制到临时文件夹,修改后,在覆盖原文件.如果原文件被占用,提示用户关闭excel文件

AxFramerControl打开EXCEL后,程序外部的EXCEL无法编辑的问题

问题描述 privateAxDSOFramer.AxFramerControlaxf_Excel=newAxDSOFramer.AxFramerControl();不要把控件直接拖到窗体上,而是使用代码New出来,然后:ThreadthOpen;privatevoidExcelCtrlEx_Load(objectsender,EventArgse){thOpen=newThread(newThreadStart(FOpen));((System.ComponentModel.ISupportIn

excel 进程-获取已打开多个的EXCEL操作

问题描述 获取已打开多个的EXCEL操作 [背景]南方CASS软件打开几千个EXCEL表格(都是新建的,还没保存),它们的特点是:一个excel在进程中表现为一个exccel进程,现在想以第一个工作表作为名称保存所有excel. 使用System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application")只能获取第一个excel进程,于是我遍历进程,处理一个关闭一个,具体代码是: private void b

在 Excel中通过双击打开时提示"文件未找到"怎么办

故障现象: 当您双击某个 Microsoft Excel 文件类型 (.xls) 时,Excel 正常启动,但然后您会收到一条与以下内容类似的错误信息: 找不到 C:\文件名.xls.请检查文件名的拼写正确,并验证文件位置正确.如果您尝试打开的文件列表中的大多数最近使用的文件在文件菜单上的,请确保该文件未被重命名. 移动或删除. 当您在错误消息上单击确定时,消息会再次出现.重复单击确定后,将打开该文件. 原因分析: 如果此文件类型的打开操作项以 %1 结尾,会出现此行为. 如果该文件类型的打开操

Excel中通过双击打开时提示"文件未找到"怎么解决

故障现象: 当您双击某个 Microsoft Excel 文件类型 (.xls) 时,Excel 正常启动,但然后您会收到一条与以下内容类似的错误信息: 找不到 C:/文件名.xls.请检查文件名的拼写正确,并验证文件位置正确.如果您尝试打开的文件列表中的大多数最近使用的文件在文件菜单上的,请确保该文件未被重命名. 移动或删除. 当您在错误消息上单击确定时,消息会再次出现.重复单击确定后,将打开该文件. 原因分析: 如果此文件类型的打开操作项以 %1 结尾,会出现此行为. 如果该文件类型的打开操

ASP操作Excel后进程无法结束

问题描述 ASP操作Excel后Excel进程无法结束,每操作一次就会增加一个Excel进程.protectedvoidButtonGetFile_Click(objectsender,EventArgse){stringstrErr="";stringstrTCTempFileName="";AddNewTC();ApplicationmyExcel=newApplication();try{InterService.CInterServiceinterServi

Excel启动时如何打开指定工作簿

  Excel启动时打开指定工作簿的步骤 1.打开Excel表格,接着点击工具栏的"文件"→Excel选项 2.在Excel选项里点击"高级"菜单,在高级里下拉找到"常规"里的"启动时打开此目录中的所有文件夹",然后我们对文件夹内容进行设置即可. 3.这样我们关闭Excel后重新打开就可以自动启动指定的工作簿啦.