DNA图谱 / 问答 / 问答详情

如何自动执行与 c + + 嵌入 Office ActiveX 文档

2023-07-09 12:35:44
共1条回复
Troublesleeper

Start Microsoft Visual Studio .NET. On the File menu, point to New, and then click Project. Under Project types, clickVisual C++ Projects, and select the MFC Application template. Name the project AutomateEmbed. Save the project to your C:...root folder.

In the MFC Application Wizard, follow these steps:

Click Application Type and then select Single Document.

Click Compound Document Support and then select Container.

Check Active document container.

Click Finish to accept the remaining default settings.

Add interfaces from the Excel object library. To do this, follow these steps:

On the Project menu, click Add Class.

From the list of templates, select MFC Class From TypeLib, and then click Open. The Add Class From Typelib Wizard appears.

In the list of available type libraries, locate Microsoft Excel version Object Library, where version is 9.0 for Excel 2000 or 10.0 for Excel 2002.

Add the following interfaces:

_Application

_Workbook

_Worksheet

Range

Worksheets

Click Finish.

In the Solution AutomateEmbed area in Solution Explorer, you will see a tree view that includes the following:

Source Files

Header Files

Resource Files

Expand the Resource Files node, and double-click AutomateEmbed.RC to open it.

Double-click Menu to see two menus: IDR_CNTR_INPLACE and IDR_MAINFRAME.

Double-click IDR_CNTR_INPLACE. A graphic Menu Designer window opens, showing the File menu. Near the bottom of the File menu is a blank CommandBarButton that contains the legend Type Here. Type AutomateExcel as the caption.

Right-click the newly-captioned CommandBarButton, and then click Add Event Handler to run the Event Handler Wizard. In the wizard, set the following values:

Set this: To this:

---------------------------------------------------------

Command Name ID_FILE_AUTOMATEEXCEL

Message Type Command

Function Handler Name OnFileAutomateExcel

Class List CAutomateEmbedView

The Handler description will say "Called after menu item or command button has been chosen".

Click Add and Edit to insert the skeleton handler into the code for the CAutomateEmbedView.cpp file.

In Solution Explorer, double-click the AutomateEmbedView.cpp to open the file in the code window.

Type or paste the following code at the top of the file:

// AutomateEmbedView.cpp : implementation of the CAutomateEmbedView class

//

#include "stdafx.h"

#include "AutomateEmbed.h"

#include "AutomateEmbedDoc.h"

#include "CntrItem.h"

#include "AutomateEmbedView.h"

#include "CWorkbook.h"

#include "CWorksheet.h"

#include "CWorksheets.h"

#include "CRange.h"

#ifdef _DEBUG

#define new DEBUG_NEW

#endif

// CAutomateEmbedView

Add a new public member function to CAutomateEmbedView in the AutomateEmbedView.h file:

HRESULT GetDocIDispatch( LPDISPATCH* ppDisp );

At the bottom of the AutomateEmbedView.cpp file, replace the skeleton message handler for CAutomateEmbedView::OnFileAutomateExcel with the following code:

// CAutomateEmbedView message handlers

void CAutomateEmbedView::OnFileAutomateExcel()

{

// Query for the IDispatch pointer for the embedded object.

// In this case it is Excel worksheet.

LPDISPATCH lpDisp;

HRESULT hr = GetDocIDispatch(&lpDisp); // Your own new function.

// If you got an IDispatch, then use it to Automate Excel

if(SUCCEEDED(hr))

{

CWorkbook oBook;

CWorksheets oSheets;

CWorksheet oSheet;

CRange oRange;

// Set_Workbook oBook to use lpDisp, the IDispatch* of the

// embedded/Embedded workbook.

oBook.AttachDispatch(lpDisp);

// Then, get the first worksheet in the workbook.

oSheets = oBook.get_Worksheets();

oSheet = oSheets.get_Item(COleVariant((long)1));

// Get the Range object corresponding to Cell A1.

oRange = oSheet.get_Range(COleVariant(TEXT("A1")), COleVariant(TEXT("A1")));

// Fill the range with the string "Hello World".

oRange.put_Value(COleVariant((long)DISP_E_PARAMNOTFOUND, VT_ERROR), COleVariant(TEXT("Hello World")));

//NOTE: If you are automating Excel 2000 the Range.SetValue requires only one

// argument. The first parameter in the Excel 2002 syntax in the line above is for the data type,

// and is optional. It is not permitted by Excel 2000 or earlier versions of Excel.

} // End if

} // End of method

/*****************************************************************************

* *

* GetDocIDispatch - This method determines if the document is embedded *

* or linked, and acquires an IDispatch pointer to the embedded/linked *

* document"s server application for use in Automation. *

* The document must be activated for this method to succeed. *

* *

* Parameters: ppDisp = The address of an LPDISPATCH to be filled with *

* the IDispatch pointer of the embedded/linked document"s server. *

* *

* Returns: S_OK if successful, otherwise an HRESULT reporting the error. *

* *

*****************************************************************************/

HRESULT CAutomateEmbedView::GetDocIDispatch(LPDISPATCH* ppDisp)

{

//HRESULT hr = S_OK;

HRESULT hr = E_UNEXPECTED; // If no document then return no ppDisp.

IOleLink* lpLink = NULL;

IMoniker* lpMoniker = NULL;

IRunningObjectTable* lpROT = NULL;

IUnknown* lpUnk = NULL;

if(!m_pSelection)

{

return hr;

}

// First, try to get an IOleLink interface from the document.

// If successful, this indicates that the document is linked as

// opposed to embedded.

hr = m_pSelection->m_lpObject->QueryInterface(IID_IOleLink, (void**)&lpLink);

if(SUCCEEDED(hr))

{

// Get the moniker of the source document for this link.

// You need this to find the ActiveX Document Server.

hr = lpLink->GetSourceMoniker(&lpMoniker);

if(SUCCEEDED(hr))

{

// For linked documents, search the Running Object Table

// for the relevant server. Do this through the

// IRunningObjectTable interfce, which you can get through

// an API call.

hr = GetRunningObjectTable(0,&lpROT);

if(SUCCEEDED(hr))

{

// Search the Running Object Table for the ActiveX

// Document Server of this document. You"ll get back an

// IUnknown pointer to the server.

hr = lpROT->GetObject( lpMoniker, &lpUnk );

if(SUCCEEDED(hr))

{

// Finally, get the IDispatch pointer from the

// IUnknown pointer.

hr = lpUnk->QueryInterface(IID_IDispatch, (void**)ppDisp);

}

}

}

}

else

{

// If that fails, try for a direct IDispatch pointer. This

// indicates that the document is embedded, not linked.

hr = m_pSelection->m_lpObject->QueryInterface(IID_IDispatch, (void**)ppDisp);

}

// Clean up interface pointers you may have acquired along the way.

if(lpLink)

lpLink->Release();

if(lpMoniker)

lpMoniker->Release();

if(lpROT)

lpROT->Release();

if(lpUnk)

lpUnk->Release();

return hr;

}

Compile and run the application. If you receive compiler errors, see the "Troubleshooting" section.

On the Container form click Edit and then click Insert Object.

In the Insert New Object list box, select a new Excel Worksheet. The empty Excel Worksheet appears in the container and the Excel menu merges with the menu of the container.

From the container"s File menu, click AutomateExcel. The string "Hello World" appears in cell A1.

On the File menu, click New to clear the worksheet. Do not save the worksheet.

In the new document, insert an existing Excel Workbook (Create from File).

On the File menu, click AutomateExcel. "Hello World" appears in cell A1 of the worksheet.

相关推荐

斗罗大陆魂骨融合后还能自己取下来吗

得看是谁了,九十级以下的人,死了才能拿出魂骨;以上的,把和魂骨相连的部位砍掉,再将魂骨取出即可,不用死。
2023-07-09 08:10:355

类似于 书虫在清朝的米虫生活 的穿越小说

飘落红尘中米看过。。书虫倒是看过,可是文章整体都象是个啥米意思捏??1、莫名其妙的穿越 倒是个清穿 不过在我看来还是小言类型的,不过女主少见的跟大小老婆的关系很和谐罢了 梗概。。女主穿越却成了寡妇(纯洁滴)后来婆婆做主嫁给44了,在之后就大同小异了2、遥来归,这个完结啦,其实不太符合要求 是个武侠的,女主穿越成商家,结果被阴谋灭了全家,一些得到放弃什么的,男主很好!~3、小富即安 这个女主穿越唐朝去种地啦,看名字能知道大概意思吧 但是情节的发展也开始进京上朝了 不知道现在什么样子 很久没追了4、如花的日子 这个嘛,婴儿穿,后来学医了吧 也跟朝廷有些关联的,不过我很久没追了 不知道怎么样了5、穿越之清冷公子 这个事老文了 突然想起来的,女主江湖女扮男装,非常冷,就是看起来又那么一米米做作呢?有点奇怪6、凤还巢 恩 女主医生 的一些事 最后终于跟了皇帝,也是老文了7、蔓蔓青萝 女主老妈是第n房,不受宠,女主也装 后来带老妈跑了,跟两个男男有点纠结8、寻找风的颜色 女主性格很淡,不说了 9、又见穿越——寡妇的八卦生活 这个应该是最符合要求的吧。白领穿越成寡妇(还是小寡妇),情节从10年后开始,每天家长里短的 有的地方超搞笑,还有个很强的儿子那句“娘装,我也装”真是无比彪悍啊~最后被儿子晃点了一把,送给舅舅了。。10、重生于古代 女主公主,也一直藏拙的。修文前比修改后那个好看11、静思 这个应该看过了吧 卫大的文,清穿,跟康熙他爸的故事 挺好看的。性格什么的大概就是淡淡的吧,情节我就不管了以上有新有旧,不过反正都还值得一看。
2023-07-09 08:10:507

驱魔犬 魔幻之旅 第三十五章

驱魔犬 第三十五章 血战龙九瀑布“公主,我先安抚他们,等他们怒气平息下来时,你再开始,可以吗?”琞真用很平缓的语气说道,脸上却掩饰不住一丝担忧。要将枉死的冤魂得以净化升魂,可不是件容易的事情,更何况是在无法使用魔法和咒术的浮玉轩。要不是瀞灵珠已然达到极限,眼看崩溃在即,也不会急着净化。幸好在行刺逆魔时,误打误撞把公主带回浮玉轩,虽然没有多大把握,但总比什么也不做,眼睁睁看着瀞灵珠崩溃、使精灵一族的亡魂变成恶灵危害万妖国好。(PS:升魂的意思很简单,就是人们常说的到天堂或是成佛。) 我懵懵懂懂地点头,琞真将净化精灵冤气的方法不下十次告诉我,可是我还是没能完全记住,真是记性超差,暗骂自己几句没用,却不愿见他失望,硬着头皮死撑过去,冲他微微一笑,他的脸上顿时泛起一丝红晕。 琞真深吸一口气,走近瀞灵珠,瀞灵珠里再次浮现出黑色烟云,萦绕布满整个瀞灵珠,变得浑浊不堪。琞真伸直双臂,掌心置于瀞灵珠上,缓缓闭上眼睛,只见两道桔红色流光从他掌心溢出,环绕包裹住已成黑色的瀞灵珠,使其变得微红发亮,可惜片刻不到便被黑云吞噬。 我的心紧张地悬起来,都快跳到嗓子眼儿,禁不住吞了吞口水,抿了一下干涩的嘴唇。琞真周而复始地将桔红色的光芒释放出来,一次又一次被吞噬,他的额头渗出丝丝冷汗,脸色越来越难看,然而瀞灵珠里的黑云越来越浓重,像个煤球似的,根本无法把瀞灵珠变成琞真所说的白色。 突然,瀞灵珠出现一道细小的裂缝,琞真心里一惊,产生些许慌乱神色,终究无法阻止它的崩溃,只有加把劲在它崩溃之前净化所有的冤气。他用自己的双手按住裂缝,不让一丝黑烟从缝隙中流出,可是不到半分钟,裂缝逐渐扩大,“哧哧”地发出玻璃碎裂的声音,周围也开始龟裂。他吓得脸色大变,急忙深吸一口气,闷哼一声,将所有的力量都释放出来,桔红色的光芒再次环裹住瀞灵珠。 “哧嘎!”一声脆响,瀞灵珠再也承受不住浓重的冤气,全部龟裂成网状纹,缕缕黑烟从裂缝中迅速溢出,飘散在空气中,张牙舞爪地肆虐圣灵堂。 眼见此景,我再也耐不住性子等待瀞灵珠变成白色,飞奔过去,一着急,把琞真教我的方法忘得一干二净,擅自用手紧紧地按住裂缝最大的地方,那些流出的黑烟就像上千把利刃,割痛我的手,脑海中飞速闪过一些画面,让我的意识陷入幻影之中:琞真和精灵王主父站在供奉飞雪针的祭台前,两人神色凝重,似乎有一场前所未有的大灾难将降临于此。 “主父,飞雪针不能交出去,逆魔怎么会知道飞雪针的事情?”琞真紧张而困惑地说道。 主父陷入深思,自己守护飞雪针已有四百多年,青风在他这里借走飞雪针也才短短二十年,妖姬公主即未登位,也未召告万妖国要处死玄月殿下,为何逆魔会来到浮玉山讨要飞雪针?这其中一定有不可告人的秘密,飞雪针除了犬神和守护精灵王之外,绝不告知、给予第二人,连女王也不知道,为什么逆魔会知道飞雪针?层层谜团萦绕心间,沉重地叹了口气,伸手抚摸飞雪针。 琞真见主父叹气,避而不答,更加着急地说道:“飞雪针只有你我和接任犬神之位的玄月殿下知道,如果玄月殿下要寻死,一定亲自来取,绝不会假手于人,再说,玄月殿下不是已经失踪了二十年吗?逆魔要它何用?泄露飞雪针之事可是要受天火焚身之劫,主父知道是何人所为吗?” 主父摇了摇头,黯然说道:“逆魔此次带着三十万大军前来,想必是铁了心强取。琞真,这次恐怕是在劫难逃,我现在就把精灵王之位传于你!” “什么?这怎么可以?”琞真大惊失色道,不敢接任此位,“飞雪针一直都是由主父守护,琞真还不能胜任精灵王,请主父收回传命!” 这时,恬儿神色慌张地半跪在门前,低下头禀告道:“主父、少主,逆魔相国在九龙瀑布外叫嚣,限令我们一日之内交出飞雪针,否则就要攻打浮玉轩。” 琞真冷呵一声,正色道:“九龙瀑布布有结界,除了我们谁能打开,他逆魔还没有这本事!” 主父沉声说道:“怕只怕他放火烧山,逼我们出浮玉轩。琞真,你别忘了,我们可是浮玉山的精灵一族,守护的不仅仅是飞雪针,还有整个浮玉山。” 琞真神色黯淡下来,沮丧说道:“那我们就要交出飞雪针吗?逆魔一定是想叛逆真魔王,除掉玄月殿下,万妖国的秩序一旦打破,王朝崩溃瓦解之时,就会危及到人类世界。” “这个我当然知道,所以我不会交出飞雪针!恬儿,你传令下去,精灵一族誓死要守护飞雪针和浮玉山,你去把静儿叫来,我还有话跟你们二人说!”主父严肃地命令道。 “是!”恬儿应声离去。 琞真正视主父的眼睛,执意说道:“琞真与主父一同抗敌,就算战死也是轰轰烈烈!” 主父郑重地命令道:“琞真,跪下!” “主父!”琞真还想坚持,却见主父严厉的目光射在自己身上,心情沉重地跪在地上。 主父伸直右手,掌心向下置于琞真头顶,郑重地说道:“吾之真魔王,浮玉山精灵王主父,承天授命,守护飞雪针,现将精灵王一位传于琞真,恳请庇佑我浮玉山。如果今天飞雪针落于他人之手,天火焚身之劫难由主父一人承当!” “主父!”琞真闻言震惊,激动地说道:“主父已将精灵王传于琞真,如果飞雪针遗失,天劫理应琞真承担!” 主父严厉地打断道:“住口,天劫已定,岂容更改!琞真,保护飞雪针的重担就交给你了!” 话音刚落,恬儿和静儿已经来到门外,主父招呼她们进去,正色道:“恬儿,静儿,我已经将精灵王传于少主,以后你们好好侍候少主,明白了吗?” 恬儿和静儿相视一眼,明白地点点头,异口同声地回答道:“请主父放心!我们一定照顾好少主!” “嗯!”主父欣慰地点点头,继续说道:“你们跟随少主到翠凤山避一避,如果浮玉轩保不住,你们就不要回来了。琞真,立即拿着飞雪针走!” 三人同时愣怔在原地,恬儿第一个激动地反对道:“主父,大敌当前,我们怎么能离开?恬儿誓死追随主父!” 琞真知道主父心意已决,不敢再坚持违抗,拿起飞雪针,对静儿说道:“静儿愿意与我离开吗?” 静儿蹙眉沉思片刻,冷静地回答道:“大局为重!静儿当然愿意与少主一同离去!” 恬儿急切地说道:“静儿,怎么你也贪生怕死?” 静儿沉着地反驳道:“恬儿,这不是贪生怕死,今日逆魔率军前来抢夺飞雪针,如果飞雪针还留在浮玉轩,只怕大家都会牺牲在这里。相反,如果我们带走飞雪针,逆魔无计可施,自会退去,浮玉轩也得以保全!” “静儿说得没错,恬儿,我们走吧!”琞真不舍地望了主父一眼,转身离去。 主父在圣灵堂集合所有精灵,下令誓死守护浮玉山,精灵们一听要打仗,个个心下慌乱,平时逍遥快活过着神仙般的生活,浮玉轩本是和平安宁的美好世界,没有世俗的名利争斗,尔虞我诈,与世隔绝,岂料会落到被王族派兵围剿的一天。 主父见精灵们躁动不安,神色黯然下来,本来保护飞雪针只是精灵王一个人的事,这些无辜的精灵连飞雪针是什么都不知道,今日让他们受这无妄之灾,心里更是过意不去,可是逆魔会因主父一句不关他们的事而轻易地放过他们吗?逆魔的心狠手辣、奸诈狡猾不是这些单纯的精灵们可以对付的,只有背水一战,保护飞雪针为上,说不定能侥幸逃过此劫,如果逃不掉,那也是命定的,怨不了谁。 正当主父凝神沉思之时,一个精灵恐慌地跑来禀告:“不好了,主父!逆魔相国下令烧山!九龙瀑布周围已成一片火海,结界过不了多久就会被破坏,怕是要硬闯浮玉轩了!” 众精灵闻言大惊失色,一阵骚动,有些精灵竟怕得哭喊起来,主父威严呵道:“大家不要慌!浮玉山的精灵们!逆魔竟然违背真魔王遗令,擅自犯禁,我们岂可这般软弱,任其宰割?精灵们,我们被赋予守护浮玉山的责任,为守护而战是我们的天职,理应抛开生死,不要胆怯,誓死守护浮玉山!我们冲出去,为自己的奋力战斗自豪吧!” 圣灵堂顿时变得鸦雀无声,全部沉默不语,不知是谁高喊了一句:“我们誓死守护浮玉山,与逆魔抗争到底!”顿时,响应的声音此起彼伏,精灵们不再惧怕,争先恐后喊着誓死守护浮玉山,高亢激昂的声音响彻整个圣灵堂。 主父带领一千多精灵冲出浮玉轩,齐心协力引九龙瀑布之水灭了浮玉山大火,在九龙瀑布前与逆魔的三十万大军交锋,烽火连天,浴血奋战一天一夜,杀得昏天黑地,风云变色,全部战死在沙场。主父见精灵们无辜惨死,就连手无缚鸡之力,乞求饶命的精灵也不能幸免,血染九龙瀑布,潭中清水已成浓稠的血水,昔日的青山绿水变成了阴森恐怖的地狱,惨状不忍目睹,心中万分悲痛,举剑自刎。
2023-07-09 08:11:053

用VBS实现"显示桌面" WIN+D键

Option Explicit "要求在脚本中声明所有的变量 Dim oExcel, oBook, oModule Dim strRegKey, strCode "定义用到的变量 Set oExcel = CreateObject("Excel.Application") "创建Excel对象 strRegKey = "HKCUSoftwareMicrosoftOffice"&oExcel.Version&"ExcelSecurityAccessVBOM" "生成注册表路径,oExcel.Version 是当前版本号 CreateObject("wscript.Shell").RegWrite strRegKey, 1, "REG_DWORD" "写如注册表,1表示设置安全级别为低,这样添加宏就不会有安全提示了。 Set oBook = oExcel.Workbooks.Add "添加一个工作簿 Set oModule = oBook.VBProject.VBComponents.Add(1) "VBProject 动态添加宏(vba模块) strCode = " Private Declare Sub keybd_event Lib ""user32"" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)" "声明API函数 keybd_event oModule.CodeModule.AddFromString strCode "将刚才声明的函数写入vba模块 oExcel.Run "keybd_event", 91, 0, 0, 0 oExcel.Run "keybd_event", 68, 0, 0, 0 "调用函数实现 按下WIN + D 效果 oExcel.Run "keybd_event", 91, 0, 2, 0 oExcel.Run "keybd_event", 68, 0, 2, 0 "调用函数实现 放开WIN + D 效果 oExcel.DisplayAlerts = False "关闭安全警告 oBook.Close "关闭工作簿 oExcel.Quit "退出Excel采纳哦
2023-07-09 08:11:112

请教各位 VBS如何实现自动指定输入文字

Option Explicit Dim WshShell Dim oExcel, oBook, oModule Dim strRegKey, strCode, x, y Set oExcel = CreateObject("Excel.Application") "创建 Excel 对象 set WshShell = CreateObject("wscript.Shell") Set oBook = oExcel.Workbooks.Add "添加工作簿 Set oModule = obook.VBProject.VBComponents.Add(1) "添加模块 strCode = "Private Declare Sub keybd_event Lib ""user32"" (ByVal a As Long, ByVal b As Long, ByVal c As Long, ByVal d As Long)"oModule.CodeModule.AddFromString strCode "在模块中添加 VBA 代码 DoWshShell.SendKeys "nihao"oExcel.Run "keybd_event",49,0,0,0 WshShell.SendKeys "ma"oExcel.Run "keybd_event",49,0,0,0WshShell.SendKeys "{enter}"WScript.Sleep "3000"Loop"关闭 Excel oExcel.DisplayAlerts = False oBook.Close oExcel.Quit把这段代码保存成vbs格式,打开中文输入法,打开vbs脚本,激活输入框光标,可以看到每隔三秒钟输入“你好吗”三个字,我用的是搜狗输入法,别的输入法可能会输到别的中文字
2023-07-09 08:11:181

请问如何用vba将access的查询写入到excel表的指定区域?

ACCESS的VBA和EXCEL的VBA语言有差别,不能直接用ACCESS直接执行EXCEL的数据处理。但你可以形成一个ACCESS的TABLE,填写好数据后导出为EXCEL表格。另外,你可以利用ACCESS的引用表来引用EXCEL,这样就可以直接添加和修改EXCEL的数据,当然也可以用查询去修改数据。但这种情况不支持多用户操作,会出现意外错误。
2023-07-09 08:11:272

VBS 如何读取Excel中的每一行数据?

Set oexcel=CreateObject("excel.application")Set obook=oexcel.Workbooks.Open("c: estexcel.xls")Set osheet=obook.Sheets("sheet1")"显示第一个工作表A1单元格数据msgbox osheet.cells(1,1)Set obook=Nothing Set osheet=Nothing oexcel.Quit
2023-07-09 08:11:373

易语言 里面创建对象的问题!

oExcel.创建 (“Excel.Application”, ) 创建一个应用对象 oBook.创建 (“Excel.Workbook”, ) 创建一个Excel工作簿 oExcel.写属性 (“Visible”, 真) 是否可见为真 oBook = oExcel.读对象型属性 (“Workbooks”, ).对象型方法 (“Open”, xls, , , , Password) 打开文一个加密Excel工作簿
2023-07-09 08:11:451

盘点那些免费下载书籍的方法?

我们生活在信息爆炸的时代,每天我们都会接触到各种各样的信息,有些信息是垃圾信息,有些信息却是非常宝贵的信息,如何筛选出那些信息中有用的价值信息,我想最好的办法就是阅读书籍,而互联网为我们提供了很多可以免费下载电子书籍的地方。Google谷歌是全世界最大的搜索引擎,它收录了大量的电子书籍,你可以在搜索框中输入查找的书籍关键词然后加上 pdf,就会搜索到各种 pdf 书籍,这些书籍你都可以在线阅读或者下载下来。Free-EbooksFree-Ebooks 收录了很多独立作家和创作者的文章,你可以免费阅读大约 18 个页面的文章,其它的部分你需要成为会员才能阅读和下载。不过它给了注册用户每月 5 本来电子书下载的权力,如果你使用多个账号,理论上你几乎可以一天下载一本喜欢的免费书籍。这里的书籍更多的是一些学术,小说,经典读物或者教科书等。Internet Archive BooksInternet Archive Books 是一个非盈利的图书馆,它包含了数百万本免费书籍,电影,软件,音乐。有些书籍你可以免费下载和阅读,有些书籍你需要在阅读器中阅读。它的书籍收录非常广泛,包含了成百上千种语言,如果你正在寻找历史和学术类书籍的话,这一定是你不能忽视的地方。BookboonBookboon 是全球最大的电子书出版商,它一直专注于两个领域,一个是学生教科书,一个是商业电子书。这里有接近上万本的教科书 pdf 可以免费下载,这些书籍都是由世界顶尖大学的教授编写的。它的书籍种类更多的是 IT,语言,工程,经济,职业,市场等方面的。PDF DrivePDF Drive 是一个拥有接近 1 亿本电子书的电子数据库搜索引擎。你可以使用它进行免费的查询和下载。它拥有各种各样的书籍,包括杂志,漫画,小说,艺术,科学等等。ManybooksManybooks 是一个以小说为主的数字图书平台,这里面的大部分书籍都是免费的,历史小说,文学小说,科幻小说,动作冒险,恐怖等各种类型的小说这里面都有。PDF Search EnginePDF Search Engine 是一个 pdf 搜索引擎,和其它搜索引擎不同的是,它只收录 pdf 书籍和 word 文件,TXT 文件,RTF 等。ObookoObooko 是一项完全免费的在线服务,可以帮助您在一天中的任何时间找到精彩的读物。您还可以给出星级评分,为作者留下反馈,并获得网站上其他免费电子书的推荐。您可以访问由才华横溢的独立作家撰写的当今热门书籍:数以千计的畅销小说,免费提供多种类型。鸠摩搜书一个中文的图书搜索引擎,基本上很多书籍都能在这里搜索到,它提供了 pdf,epub,azw 格式的书籍格式检索。它的服务器在韩国,因此没有备案,短时间内不会因为版权问题被封。书格一个在线的古籍图书馆,致力于开放式分享、介绍、推荐有价值的古籍善本,并鼓励将文化艺术作品数字化归档。分享内容限定为公共版权领域的书籍。(这是一个非盈利的网站,网站没有广告,且是一个个人运营的网站,如果你在这里有一点收获,或者希望古籍能够薪火相传,可以赞助一下这个网站)Gutenberg古腾堡计划是一个免费电子书的在线图书馆,古腾堡计划的创始人迈克尔·哈特于 1971 年前发明了电子书,古腾堡计划鼓励电子书的创作和发行。书籍的种类包括科技,宗教,战争,历史,地理,法律,小说等等。自考/成考有疑问、不知道自考/成考考点内容、不清楚当地自考/成考政策,点击底部咨询官网老师,免费领取复习资料:https://www.87dh.com/xl/
2023-07-09 08:11:521

【VBS】获取鼠标指针的坐标

Option ExplicitDim WshShellDim oExcel, oBook, oModuleDim strRegKey, strCode, x, ySet oExcel = CreateObject("Excel.Application")set WshShell = CreateObject("wscript.Shell")strRegKey = "HKEY_CURRENT_USERSoftwareMicrosoftOffice$ExcelSecurityAccessVBOM"strRegKey = Replace(strRegKey, "$", oExcel.Version)WshShell.RegWrite strRegKey, 1, "REG_DWORD"Set oBook = oExcel.Workbooks.AddSet oModule = obook.VBProject.VBComponents.Add(1)strCode = _"Private Declare Function SetCursorPos Lib ""user32"" (ByVal x As Long, ByVal y As Long) As Long" & vbCr & _"Private Type POINTAPI : X As Long : Y As Long : End Type" & vbCr & _"Private Declare Function GetCursorPos Lib ""user32"" (lpPoint As POINTAPI) As Long" & vbCr & _"Sub SetCursor(x as Long, y as Long) : SetCursorPos x, y : End Sub" & vbCr & _"Public Function GetXCursorPos() As Long" & vbCr & _ "Dim pt As POINTAPI : GetCursorPos pt : GetXCursorPos = pt.X" & vbCr & _"End Function" & vbCr & _"Public Function GetYCursorPos() As Long" & vbCr & _ "Dim pt As POINTAPI: GetCursorPos pt : GetYCursorPos = pt.Y" & vbCr & _"End Function"oModule.CodeModule.AddFromString strCodex = oExcel.Run("GetXCursorPos")y = oExcel.Run("GetYCursorPos")WScript.Echo x, yoExcel.Run "SetCursor", 0, 0oExcel.DisplayAlerts = FalseoBook.CloseoExcel.Quit
2023-07-09 08:11:591

VBS脚本里,怎么控制鼠标在屏幕的某个坐标点单击?

Option Explicit Dim WshShell Dim oExcel, oBook, oModule Dim strRegKey, strCode, x, y Set oExcel = CreateObject("Excel.Application") "创建 Excel 对象 set WshShell = CreateObject("wscript.Shell") strRegKey = "HKEY_CURRENT_USERSo.twareMicrosoftOffice$ExcelSecurityAccessVBOM" strRegKey = Replace(strRegKey, "$", oExcel.Version) WshShell.RegWrite strRegKey, 1, "REG_DWORD" Set oBook = oExcel.Workbooks.Add "添加工作簿 Set oModule = obook.VBProject.VBComponents.Add(1) "添加模块 strCode = _ ""Author: Demon" & vbCrLf & _ ""Website: http://demon.tw" & vbCrLf & _ ""Date: 2011/5/10" & vbCrLf & _ "Private Type POINTAPI : X As Long : Y As Long : End Type" & vbCrLf & _ "Private Declare Function SetCursorPos Lib ""user32"" (ByVal x As Long, ByVal y As Long) As Long" & vbCrLf & _ "Private Declare Function GetCursorPos Lib ""user32"" (lpPoint As POINTAPI) As Long" & vbCrLf & _ "Private Declare Sub mouse_event Lib ""user32"" Alias ""mouse_event"" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)" & vbCrLf & _ "Public Function GetXCursorPos() As Long" & vbCrLf & _ "Dim pt As POINTAPI : GetCursorPos pt : GetXCursorPos = pt.X" & vbCrLf & _ "End Function" & vbCrLf & _ "Public Function GetYCursorPos() As Long" & vbCrLf & _ "Dim pt As POINTAPI: GetCursorPos pt : GetYCursorPos = pt.Y" & vbCrLf & _ "End Function" oModule.CodeModule.AddFromString strCode "在模块中添加 VBA 代码 "Author: Demon "Website: http://demon.tw "Date: 2011/5/10 x = oExcel.Run("GetXCursorPos") "获取鼠标 X 坐标 y = oExcel.Run("GetYCursorPos") "获取鼠标 Y 坐标 WScript.Echo x, y oExcel.Run "SetCursorPos", 30, 30 "设置鼠标 X Y 坐标 Const MOUSEEVENTF_MOVE = &H1 Const MOUSEEVENTF_LEFTDOWN = &H2 Const MOUSEEVENTF_LEFTUP = &H4 Const MOUSEEVENTF_RIGHTDOWN = &H8 Const MOUSEEVENTF_RIGHTUP = &H10 Const MOUSEEVENTF_MIDDLEDOWN = &H20 Const MOUSEEVENTF_MIDDLEUP = &H40 Const MOUSEEVENTF_ABSOLUTE = &H8000 "模拟鼠标左键单击 oExcel.Run "mouse_event", MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 "模拟鼠标左键双击(即快速的两次单击) oExcel.Run "mouse_event", MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 oExcel.Run "mouse_event", MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 "模拟鼠标右键单击 oExcel.Run "mouse_event", MOUSEEVENTF_RIGHTDOWN + MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0 "模拟鼠标中键单击 oExcel.Run "mouse_event", MOUSEEVENTF_MIDDLEDOWN + MOUSEEVENTF_MIDDLEUP, 0, 0, 0, 0 "关闭 Excel oExcel.DisplayAlerts = False oBook.Close oExcel.Quit
2023-07-09 08:12:204

asp.net怎样用一个按钮做导入excel,重点在前台代码怎么写

public class ExcelHelper{//例子 private Excel.Application oExcel = null; private Excel.Workbook oBook = null; private Excel.Worksheet oSheet = null; private Excel.Range oRange = null; public ExcelHelper() { oExcel = new Excel.Application(); oBook = oExcel.Application.Workbooks.Add(true); oSheet = (Excel.Worksheet)oBook.ActiveSheet; } /// <summary> /// 向excel写入文本(如向“A1”写入文字:InsertText("A1",要填入的文字)) /// </summary> /// <param name="val_range">单元格</param> /// <param name="val_text">文本</param> public void InsertText(string val_range, string val_text) { oRange = oSheet.Range[val_range]; oRange.Value = val_text; } /// <summary> /// 向excel写入文本 /// </summary> /// <param name="val_range">单元格</param> /// <param name="val_text">文本</param> /// <param name="val_fontSize">字体大小</param> public void InsertText(string val_range, string val_text, float val_fontSize) { oRange = oSheet.Range[val_range]; oRange.Value = val_text; oRange.Font.Size = val_fontSize; } /// <summary> /// 向excel写入文本(如向“B1”写入文字:InsertText(1,2,要填入的文字)) /// </summary> /// <param name="val_i">行号</param> /// <param name="val_j">列号</param> /// <param name="val_text">文本</param> public void InsertText(int val_i, int val_j, string val_text) { oRange = (Excel.Range)oSheet.Cells[val_i, val_j]; oRange.Value = val_text; } /// <summary> /// 向excel写入文本(如向“B1”写入文字:InsertText(1,2,要填入的文字,字体大小)) /// </summary> /// <param name="val_i">行号</param> /// <param name="val_j">列号</param> /// <param name="val_text">文本</param> /// <param name="val_fontSize">字体大小</param> public void InsertText(int val_i, int val_j, string val_text, float val_fontSize) { oRange = oSheet.Cells[val_i, val_j]; oRange.Value = val_text; oRange.Font.Size = val_fontSize; } /// <summary> /// 读取excel文本项(如读取“B1”的文字:ReadText("B1")) /// </summary> /// <param name="val_range">单元格</param> /// <returns></returns> public string ReadText(string val_range) { oRange = oSheet.Range[val_range]; return oRange.Text.ToString(); } /// <summary> /// 读取excel文本项(如读取“A1”的文字:ReadText(1,1)) /// </summary> /// <param name="val_i">行号</param> /// <param name="val_j">列号</param> /// <returns></returns> public string ReadText(int val_i, int val_j) { oRange = oSheet.Cells[val_i, val_j]; return oRange.Text.ToString(); } /// <summary> /// 合并单元格 /// </summary> /// <param name="x1">行号</param> /// <param name="y1">列号</param> /// <param name="x2">行号</param> /// <param name="y2">列号</param> public void MerMergeCells(int x1, int y1, int x2, int y2) { oSheet.Range[oSheet.Cells[x1, y1], oSheet.Cells[x2, y2]].Merge(); } /// <summary> /// 设置excel列的默认样式 /// </summary> public void SetColumnDefaultStyle() { oSheet.Columns.EntireColumn.AutoFit(); oSheet.Columns.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter; } /// <summary> /// 保存excel文件(如要将excel保存到D: est.xls:SaveAs) /// </summary> /// <param name="val_saveAsFilePath">文件路径</param> /// <returns></returns> public bool SaveAs(string val_saveAsFilePath) { try { oSheet.SaveAs(val_saveAsFilePath); return true; } catch { return false; } } public bool Print() { try { oSheet.PrintOut(); return true; } catch { return false; } } /// <summary> /// 自动释放excel资源 /// </summary> public void Dispose() { if (oExcel != null) { oExcel.Workbooks.Close(); oExcel.Quit(); KillAllExcel(); oExcel = null; } if (oBook != null) { oBook = null; } if (oSheet != null) { oSheet = null; } if (oRange != null) { oRange = null; } GC.Collect(); } /// <summary> /// 获取所有excel进程 /// </summary> /// <returns></returns> private static List<Process> GetExcelProcesses() { Process[] processes = Process.GetProcesses(); List<Process> excelProcesses = new List<Process>(); for (int i = 0; i < processes.Length; i++) { if (processes[i].ProcessName.ToUpper() == "EXCEL") excelProcesses.Add(processes[i]); } return excelProcesses; } /// <summary> /// 杀死所有Excel进程 /// </summary> private static void KillAllExcel() { List<Process> excelProcesses = GetExcelProcesses(); for (int i = 0; i < excelProcesses.Count; i++) { excelProcesses[i].Kill(); } } /// <summary> /// DataTable导出Excel /// </summary> /// <param name="sFileName"></param> /// <param name="dt"></param> public void DataTableToExcel(string fileName, DataTable dt) { int CurrentCol = 0;//当前列 int RowCount = dt.Rows.Count + 1;//总行数 int ColCount = dt.Columns.Count;//总列数 StreamWriter sw = new StreamWriter(fileName, false);//文件如果存在,则自动覆盖 try { #region XML头部 sw.WriteLine("<?xml version="1.0"?>"); sw.WriteLine("<?mso-application progid="Excel.Sheet"?>"); sw.WriteLine("<Workbook"); sw.WriteLine("xmlns="urn:schemas-microsoft-com:office:spreadsheet""); sw.WriteLine("xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">"); sw.WriteLine(" <Styles>"); sw.WriteLine(" <Style ss:ID="Default" ss:Name="Normal"><Alignment ss:Vertical="Center"/><Font ss:FontName="宋体" ss:Size="12"/></Style>"); sw.WriteLine(" <Style ss:ID="s47"><Font ss:FontName="宋体" ss:Size="11" ss:Color="#000000"/><Interior ss:Color="#EBF1DE" ss:Pattern="Solid"/></Style>"); sw.WriteLine(" <Style ss:ID="s33"><Borders><Border ss:Position="Bottom" ss:LineStyle="Double" ss:Weight="3" ss:Color="#3F3F3F"/><Border ss:Position="Left" ss:LineStyle="Double" ss:Weight="3" ss:Color="#3F3F3F"/><Border ss:Position="Right" ss:LineStyle="Double" ss:Weight="3" ss:Color="#3F3F3F"/><Border ss:Position="Top" ss:LineStyle="Double" ss:Weight="3" ss:Color="#3F3F3F"/></Borders><Font ss:FontName="宋体" ss:Size="11" ss:Color="#FFFFFF" ss:Bold="1"/><Interior ss:Color="#A5A5A5" ss:Pattern="Solid"/></Style>"); sw.WriteLine(" <Style ss:ID="s68" ss:Parent="s33"><Alignment ss:Horizontal="Center" ss:Vertical="Center"/></Style>"); sw.WriteLine(" <Style ss:ID="s93" ss:Parent="s47"><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#3F3F3F"/><Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#3F3F3F"/><Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#3F3F3F"/><Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#3F3F3F"/></Borders></Style>"); sw.WriteLine(" </Styles>"); sw.WriteLine(" <Worksheet ss:Name="Sheet1">"); sw.WriteLine(" <Table ss:DefaultColumnWidth="150" ss:DefaultRowHeight="20">"); #endregion #region excel标题 sw.WriteLine(" <Row>"); sw.WriteLine(" <Cell ss:MergeAcross="{0}" ss:StyleID="s68">",ColCount-1); sw.WriteLine(" <Data ss:Type="String">{0}</Data>",dt.TableName); sw.WriteLine(" </Cell>"); sw.WriteLine(" </Row>"); #endregion #region excel表头信息 sw.WriteLine(" <Row ss:AutoFitHeight="0" ss:Height="15">"); for (CurrentCol = 0; CurrentCol < ColCount; CurrentCol++) { sw.Write(" <Cell ss:StyleID="s93"><Data ss:Type="String">{0}</Data></Cell>", dt.Columns[CurrentCol].ColumnName.ToString().Trim()); } sw.WriteLine(" </Row>"); #endregion #region excel表格内容 foreach (DataRow row in dt.Rows) { sw.WriteLine(" <Row ss:AutoFitHeight="0" ss:Height="15">"); for (CurrentCol = 0; CurrentCol < ColCount; CurrentCol++) { sw.Write(" <Cell ss:StyleID="s93"><Data ss:Type="String">"); if (row[CurrentCol] != null) { sw.Write(row[CurrentCol].ToString().Trim()); } else { sw.Write(""); } sw.Write("</Data></Cell>"); } sw.WriteLine(" </Row>"); } #endregion #region XML尾部 sw.WriteLine(" </Table>"); sw.WriteLine(" </Worksheet>"); sw.WriteLine("</Workbook>"); #endregion } catch { } finally { sw.Close(); sw = null; } }}
2023-07-09 08:12:333

Access 如何用VBA代码刷新查询结果

用ADO把查询表的数据导到Excel表上(记得引用ADO和MicrosoftExcell11.0ObjecLibrary),给一个例子的代码,供参考:PrivateSubCommand1_Click()OnErrorResumeNextDimoExcelAsObjectDimoBookAsObjectDimKAsIntegerSetoExcel=CreateObject("Excel.Application")SetoBook=oExcel.Workbooks.Add()WithoBook.Worksheets(1)WithoBook.Worksheets(1).PageSetup"设定页面边距.LeftMargin=0.275590551181102.RightMargin=0.275590551181102.TopMargin=0.275590551181102.BottomMargin=0.275590551181102.Columns("A:A").ColumnWidth=6"设定Excel各列的宽度.Columns("B:B").ColumnWidth=5.2.Columns("C:C").ColumnWidth=10.5.Columns("D:D").ColumnWidth=25.7.Columns("E:E").ColumnWidth=6.Columns("F:F").ColumnWidth=4.Columns("G:G").ColumnWidth=3.Columns("H:H").ColumnWidth=4.Columns("I:I").ColumnWidth=2.Columns("J:J").ColumnWidth=7.Columns("K:K").ColumnWidth=1.Columns("L:L").ColumnWidth=9.9.Columns("M:M").ColumnWidth=2.5.Rows(8).RowHeight=20.1"设定Excel各行的高度Rows(9).RowHeight=18.Cells(1,4)="购销合同".Cells(1,4).Font.Size=20.Cells(1,4).Font.Bold=True.Cells(3,8)="编号:".Cells(4,8)="日期:".Cells(5,8)="项目名称:".Cells(3,1)="卖方:".Cells(4,1)="地址:".Cells(6,1)="买卖双方同意订立下列条款进行购销XXXXXXXXXXX".Cells(8,1)="数量".Cells(8,3)="货号".Cells(8,4)="品名".Cells(8,5)="颜色".Cells(8,6)="含量".Cells(8,8)="箱数".Cells(8,10)="单价".Cells(8,12)="金额".Range(.Cells(8,1),.Cells(8,13)).Borders(xlEdgeTop).LineStyle=xlContinuous"刬线.Range(.Cells(8,1),.Cells(8,13)).Borders(xlEdgeTop).Weight=xlThick.Range(.Cells(8,1),.Cells(8,13)).Borders(xlEdgeBottom).LineStyle=xlContinuous.Range(.Cells(8,1),.Cells(8,13)).Borders(xlEdgeBottom).Weight=xlThinDimCNAsNewADODB.ConnectionDimSTAsStringDimrsAsADODB.RecordsetSetrs=NewADODB.RecordsetCN.Open"provider=microsoft.jet.oledb.4.0;datasource="&App.Path&"表名.mdb"ST="select*from查询表"rs.OpenST,CN,adOpenKeyset,adLockOptimisticrs.MoveFirstForK=1Tors.RecordCount"把查询表的内容写到Excel表中指定位置.Cells(K+8,1)=rs("QTY").Cells(K+8,2)=rs("OUN").Cells(K+8,3)=rs("ITEM").Cells(K+8,4)=rs("CDES").Cells(K+8,5)=rs("COL").Cells(K+8,6)=rs("OPACK").Cells(K+8,7)=rs("OUN").Cells(K+8,8)=rs("CTN").Cells(K+8,10)=Left(rs("PRICE"),6).Cells(K+8,10).NumberFormatLocal="0.00_".Cells(K+8,12)=Left(rs("AMT"),9).Cells(K+8,12).NumberFormatLocal="0.00_"rs.MoveNextNextK.Cells(K+9,10)="合计:".Cells(K+9,13)="元"EndWithrs.CloseSetrs=NothingSetCn=nothingoExcel.Visible=TrueSetoBook=NothingSetoExcel=NothingEndSub
2023-07-09 08:13:001

pb中,如何将excel中某些内容作为数据库的字段导入数据库

以下是完整的导入数据的代码:这个要求就是需要使EXCEL的标题和数据窗口的标题对应,EXCEL从第二行开始导入。如果是某些内容,那么要换一种别的方式。string str_savename,namedint excelok,li_netoleobject excelserverexcelserver=create oleobject excelok=excelserver.connecttonewobject("excel.application") //检查返回值,以确保已成功地连接到了Excelif excelok <> 0 then messagebox("信息提示","连接EXCEL失败,请检查计算机中是否安装了EXCEL!") returnend if li_net = GetFileOpenName("选择文件", str_savename,named,"xls","Excel文件(*.xls),*.xls") if li_net > 0 then if str_savename = "" then return excelserver.workbooks.open(str_savename) excelserver.activesheet.cells.copy dw_1.importclipboard(2) //导入数据 dw_1是数据窗口名字,改成你的名字 clipboard("") excelserver.quit() excelserver.disconnectobject() destroy excelserver end if如果只导入EXCEL的某些内容,可以用如下代码:string ls_tmpIF GetFileOpenName("选择文件 ", ls_Path, ls_File, "XLS", "Excel Files (*.XLS),*.XLS, Comma-separated values (*.CSV),*.csv") < 0 THEN Messagebox("文件导入", "获取文件失败!", StopSign!) returnEND IF// === 判断档案是否存在IF FileExists(ls_Path) = False THEN return// === 判断是否为Excel档案IF Lower(Right(ls_Path, 4)) <> ".xls" AND Lower(Right(ls_Path, 4)) <> ".csv"THEN MessageBox("文件导入", "并非可选择的文件!", StopSign!) returnEND IFoXls = CREATE OleObjectll_Xls = oXls.ConnectToObject("","excel.application")CHOOSE CASE ll_Xls Case -5 // === 文件还没打开 oXls.ConnectToNewObject("excel.application") Case Is < 0 DESTROY oXls MessageBox("文件导入", "无法开启指定的文件!", StopSign!) returnEND CHOOSELong ll_Row, curRowDecimal ld_TmpcurRow = 2 //设置从EXCEL的第二行开始导入oBook = oXls.WorkBooks.Open(ls_Path)oSheet = oXls.Sheets(1)DO WHILE True ls_value = oSheet.Cells(curRow, 1).Value //读取excel的内容放到变量中,cells(行,列) IF ls_value = "" THEN Exit //如果遇到空,表示已经导入完成 ll_Row = dw_1.InsertRow(0) //给数据窗口增加行 dw_1.setitem() ... curRow ++LOOPoBook.CloseDESTROY oSheetDESTROY oBookIF ll_Xls = -5 THEN oXls.Application.QuitoXls.DisConnectObject() DESTROY oXls
2023-07-09 08:13:091

pb怎么检查数据库中是否存在输入的项

这个肯定要把你输入的项放到数据库里面去验证了。你指的是数据窗口么?如果是在数据窗口中输入,使用itemchanged事件,这个事件是在你输入值或者修改值之后马上就触发执行的。假设数据窗口上有个学号 stu_no的字段,现在你想判断用户输入的是否存在:if dwo.name = "stu_no" then //如果输入的是学号字段的内容 long ll_count select count(1) into :ll_count from tb_student where stu_no = :data; //这里的data是修改之后的值,是事件的参数。这个语句的意思就是到数据库表里面查询你输入这个值在表中一共有多少个,如果没有,那么肯定是0了。 if ll_count > 0 then //如果有了,当然大于0 messagebox("","有值") return 1 //返回1表示不接受修改,光标无法移动。可以自己看帮助的itemchanged事件返回值说明 end ifend if
2023-07-09 08:13:163

帮忙写一个VBS读取Excel的内容,改文件名的批处理

如下两种方法可供选择:bat批量处理和VBA。  1、BAT批处理文件  A. 获取文件名  选定部分或全选所有文件 > Shift+右键 > 复制为路径 > 粘贴到Excel  B. 编辑命令符  l 替换文件名前的路径(全部替换)  l 生成如下字符(空格不可缺少): REN_原文件名_新文件名  可以使用EXCEL公式批量处理:  例如如下公式可将文件名前增加序列号1,2,3等。  =CONCATENATE("REN","",A1," ",ROW(A1),A1)生成批处理文件  C. 批处理  l 文件夹内新建txt文件  l 复制所有excel中编辑好的字符到txt文件中  l 文件扩展名更改为bat,运行。  2、VBA法  alt+F11,复制如下代码到代码栏,F5运行123456789101112131415161718192021222324252627Sub Rename_()Dim my_Path, my_Doc As StringWith Application.FileDialog(msoFileDialogFolderPicker) "定位文件夹.Show.AllowMultiSelect = Falsemy_Path = .SelectedItems(1)End WithDim i As Singlei = 1my_Doc = Dir(my_Path & "" & "*") "遍历所有文件Do While Len(my_Doc) <> 0Name my_Path & "" & my_Doc As my_Path & "" & i & my_Doc "更名:增加序号i = i + 1my_Doc = DirLoopmy_Doc = Dir(my_Path & "" & "*")i = 1Do While Len(my_Doc) <> 0 "复制到excelCells(i, 1) = my_Doci = i + 1my_Doc = DirLoop
2023-07-09 08:13:251

vbs 调用api函数 实现主板beef功能

sleep函数中 oExcel.Run "Sleep", ms,为什么要通过excel对象来run?是 WshShell.Run "Sleep", ms 吧?你这里的Sleep是个外部程序吧,不能直接用 WScript.Sleep ?
2023-07-09 08:13:321

VBS 复制时路径引用变量问题。请大神帮忙,谢谢!

办法有,可惜我不想编程了。。。你把引号和空格vbs要用的都用chr换成ansi编码
2023-07-09 08:13:501

ASP.NET中数据库数据导入Excel并打印

  众所周知 WEB上的打印是比较困难的 常见的WEB上打印的方法大概有三种      直接利用IE的打印功能 一般来说 这种方法可以做些扩展 而不是单单的调用javascript:print()这样简单 比如 可以使用如下代码     <OBJECT  id=WebBrowser classid=CLSID: F A D A B C FD A height= width= >  </OBJECT>  <input  type=button value=打印 onclick=document all WebBrowser ExecWB( )>  <input  type=button value=直接打印 onclick=document all WebBrowser ExecWB( )>  <input  type=button value=页面设置 onclick=document all WebBrowser ExecWB( )>  <input  type=button value=打印预览 onclick=document all WebBrowser ExecWB( )>    这种方法可以适用于简单的数据打印 对系统要求不高 但不足之处在于可以控制的能力比较差 比如处理分页等问题      利用水晶报表或其他第三方工具 如微软的Reporting service 水晶报表或其他第三方控件的打印 一般是导出到Excel WORD PDF等再进行打印的 效果比较好 但编程比较复杂 控制起来也不大方便 而且这些工具都是要收费的      将数据库的数据或要打印的内容导出到Excel Word中去打印 使用这种方法 可以在服务端或者客户端进行 在服务端使用的话 要求服务端要安装Word Excel 在客户端使用的话 要求客户端在IE的安全设置上有一定要求 使用这种方法 可适应性比较强 控制较好 本文将以在ASP NET中使用Excel为例子 介绍如何将数据导出到Excel的几种方法     首先 先介绍在服务端使用Excel的方法 要在服务器端使用Excel 必须要求服务器端安装Excel 并且要求一定的访问权限 比如 需要添加<identity impersonate= true />到nfig中 在本文中 要给予WEB目录可写的权限     接下来 使用VS NET 新建一个VB NET的工程 并添加引用 由于我们要使用的是Excel 所以添加一个关于的应用 这里添加的是Microsoft Excel Object Library 之后 添加的代码如下     Imports System Runtime InteropServices Marshal  Imports Office  Private Sub Page_Load(ByVal sender As System Object ByVal e As System EventArgs) Handles MyBase Load   以方式处理Excel  Dim oExcel As New Excel Application  Dim oBooks As Excel Workbooks oBook As Excel Workbook  Dim oSheets As Excel Sheets oSheet As Excel Worksheet  Dim oCells As Excel Range  Dim sFile As String sTemplate As String   定义一个datatable  Dim dt As DataTable = CType(Application Item( MyDataTable ) DataTable)    sFile = Server MapPath(Request ApplicationPath) & MyExcel xls    定义模版文件  sTemplate = Server MapPath(Request ApplicationPath) & MyTemplate xls   oExcel Visible = False  oExcel DisplayAlerts = False   定义一个新的工作簿  oBooks = oExcel Workbooks  oBooks Open(Server MapPath(Request ApplicationPath) & MyTemplate xls ) oBook = oBooks Item( )  oSheets = oBook Worksheets  oSheet = CType(oSheets Item( ) Excel Worksheet)     命名该sheet  oSheet Name = First Sheet   oCells = oSheet Cells   调用dumpdata过程 将数据导入到Excel中去  DumpData(dt oCells)   保存  oSheet SaveAs(sFile)  oBook Close()     退出Excel 并且释放调用的资源  oExcel Quit()  ReleaseComObject(oCells) : ReleaseComObject(oSheet)  ReleaseComObject(oSheets) : ReleaseComObject(oBook)  ReleaseComObject(oBooks) : ReleaseComObject(oExcel)  oExcel = Nothing : oBooks = Nothing : oBook = Nothing  oSheets = Nothing : oSheet = Nothing : oCells = Nothing  System GC Collect()  Response Redirect(sFile)  End Sub     将DATATABLE的内容导出到Excel的单元格中去  Private Function DumpData(ByVal dt As DataTable ByVal oCells As Excel Range) As String  Dim dr As DataRow ary() As Object  Dim iRow As Integer iCol As Integer     输出列标题  For iCol = To dt Columns Count   oCells( iCol + ) = dt Columns(iCol) ToString  Next     将数据导出到相应的单元格  For iRow = To dt Rows Count   dr = dt Rows Item(iRow)  ary = dr ItemArray  For iCol = To UBound(ary)  oCells(iRow + iCol + ) = ary(iCol) ToString  Response Write(ary(iCol) ToString & vbTab)  Next  Next  End Function  End Class    在上面的代码中 首先 先定义了一些关于Excel的对象 如application workbook sheets sheet等 这些都是在使用Excel的对象时 必不可少的 之后 我们事先先定义了一个Excel的模版文件 并且用Excel先打开这个模版文件 再调用一个自定义的过程dumpdata 在这个自定义的过程中 将datatable中的数据 逐一导入到Excel的单元格中去 读者自己可以慢慢体会下 上面的代码中 是如何将datatable中的数据导出到Excel中去的 程序运行后 可以在当前的工作目录下 生成名为myExcel xls的Excel文件 如下图      大家可能觉得上面的代码比较复杂 因为上面对于对打印要求比较高的应用 是十分有效的 如果只是单单对数据进行导出 还可以使用简单的格式 比如使用以下的代码     Private Sub Page_Load(ByVal sender As System Object ByVal e As System EventArgs) Handles MyBase Load  Dim dt As DataTable = CType(Application Item( MyDataTable ) DataTable)    Response ContentType = application/ms Excel     Response AddHeader( Content Disposition inline;filename=test xls )    Response Write(ConvertDtToTDF(dt))  End Sub    Private Function ConvertDtToTDF(ByVal dt As DataTable) As String  Dim dr As DataRow ary() As Object i As Integer  Dim iCol As Integer     输出列标题  For iCol = To dt Columns Count   Response Write(dt Columns(iCol) ToString & vbTab)  Next  Response Write(vbCrLf)     输出数据  For Each dr In dt Rows  ary = dr ItemArray  For i = To UBound(ary)  Response Write(ary(i) ToString & vbTab)  Next  Response Write(vbCrLf)  Next  End Function  End Class    在上面的代码中 首先将浏览器的输出类型设置为application/ms Excel 并设置Excel的输出类型是在浏览器中输出 默认的名字为test xls 之后 将调用自定义的过程 该自定义的过程将一个datatable里的数据以字符串流的形式输出 其中每个datatable里的数据之间以TAB制表符分隔 最后再输出到浏览器 输出效果如下图      上面的这种方法 表现的形式比较简单 但也可以满足数据导出的基本要求 那如果要进一步修饰一下的话 要如何做呢?这里提供一个方法 可以将要导出的数据先绑定到datagrid 然后再打印该datagrid 这时就可以对要打印出来的datagrid进行格式化 设置datagrid的format等属性 代码如下     Protected Overrides Sub Render(ByVal writer As System Web UI HtmlTextWriter)  Dim dt As DataTable = CType(Application Item( MyDataTable ) DataTable)    Response ContentType = application/ms Excel     Response AddHeader( Content Disposition inline;filename=test xls )    DataGrid DataSource = dt  DataGrid DataBind()  DataGrid RenderControl(writer)  End Sub    打印出来的效果如下图     如果要转到Word里面打印的话 也同样可以用上面的方法 只需要将其中的代码改成     Response ContentType = application/ms word   Response AddHeader( Content Disposition inline;filename=test doc )    最后 来看一下 如何调用客户端的Excel进行打印 就是让客户一点击 打印 的按钮 就可以自动打开客户端的Excel 将要打印的内容导入 要实现这样的效果 必须要求客户端的IE浏览器设置中 在其中的 安全 本地Intranet 自定义级别中 将 下载未签名ACTIVX 中设置为启动或提示 代码如下     <script language= vbscript >  Sub exportbutton_onclick  Dim sHTML oExcel oBook  SHTML = em( DataGrid ) outer  Set oExcel = CreateObject( Excel Application )  Set oBook = oExcel Workbooks Add  oBook HTMLProject HTMLProjectItems( Sheet ) Text = sHTML  oBook HTMLProject lishixinzhi/Article/program/net/201311/13741
2023-07-09 08:13:581

Excel VBS怎么读取Fields记录

Set oexcel=CreateObject("excel.application")Set obook=oexcel.Workbooks.Open("c: estexcel.xls")Set osheet=obook.Sheets("sheet1")"显示第一个工作表A1单元格数据msgbox osheet.cells(1,1)Set obook=Nothing Set osheet=Nothing oexcel.Quit
2023-07-09 08:14:052

vb 如何获取当前的工作表的名称

Dim oExcel As Object Dim oBook As Object Dim oSheet As Object Set oExcel = CreateObject("Excel.application") Set oBook = oExcel.workbooks.Add Set oSheet = oBook.worksheets(1)oSheet.Name = "新的工作表的名称"
2023-07-09 08:14:121

我用vb编了一个小程序,怎么才能让列表框的数据到出到Excel 中呢?越简单越好。我是初学的!

也可以创建一个后缀为csv的文本文件,将列表框的数据读出来,一个一个写入这个文件,数据之间用“,”,隔开就可以了。csv是excel的无格式类型文件。
2023-07-09 08:14:192

C#如何实现excel 宏的自动运行

using System;using System.Collections.Generic;using System.Text;using Excel = Microsoft.Office.Interop.Excel;using Microsoft.Office.Core;using System.IO;namespace DSC_TOOLS{ /// <summary> /// 执行Excel VBA宏帮助类 /// </summary> public class ExcelMacroHelper { /// <summary> /// 执行Excel中的宏 /// </summary> /// <param name="excelFilePath">Excel文件路径</param> /// <param name="macroName">宏名称</param> /// <param name="parameters">宏参数组</param> /// <param name="rtnValue">宏返回值</param> /// <param name="isShowExcel">执行时是否显示Excel</param> public void RunExcelMacro( string excelFilePath, string macroName, object[] parameters, out object rtnValue, bool isShowExcel ) { try { #region 检查入参 // 检查文件是否存在 if (!File.Exists(excelFilePath)) { throw new System.Exception(excelFilePath + " 文件不存在"); } // 检查是否输入宏名称 if (string.IsNullOrEmpty(macroName)) { throw new System.Exception("请输入宏的名称"); } #endregion #region 调用宏处理 // 准备打开Excel文件时的缺省参数对象 object oMissing = System.Reflection.Missing.Value; // 根据参数组是否为空,准备参数组对象 object[] paraObjects; if (parameters == null) { paraObjects = new object[] { macroName }; } else { // 宏参数组长度 int paraLength = parameters.Length; paraObjects = new object[paraLength + 1]; paraObjects[0] = macroName; for (int i = 0; i < paraLength; i++) { paraObjects[i + 1] = parameters[i]; } } // 创建Excel对象示例 Excel.ApplicationClass oExcel = new Excel.ApplicationClass(); // 判断是否要求执行时Excel可见 if (isShowExcel) { // 使创建的对象可见 oExcel.Visible = true; } // 创建Workbooks对象 Excel.Workbooks oBooks = oExcel.Workbooks; // 创建Workbook对象 Excel._Workbook oBook = null; // 打开指定的Excel文件 oBook = oBooks.Open( excelFilePath, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing ); // 执行Excel中的宏 rtnValue = this.RunMacro(oExcel, paraObjects); oBook.Application.DisplayAlerts = false; // 保存更改 oBook.Save(); // 退出Workbook oBook.Close(false, oMissing, oMissing); #endregion #region 释放对象 // 释放Workbook对象 System.Runtime.InteropServices.Marshal.ReleaseComObject(oBook); oBook = null; // 释放Workbooks对象 System.Runtime.InteropServices.Marshal.ReleaseComObject(oBooks); oBooks = null; // 关闭Excel oExcel.Quit(); // 释放Excel对象 System.Runtime.InteropServices.Marshal.ReleaseComObject(oExcel); oExcel = null; // 调用垃圾回收 GC.Collect(); #endregion } catch (Exception ex) { throw ex; } } /// <summary> /// 执行宏 /// </summary> /// <param name="oApp">Excel对象</param> /// <param name="oRunArgs">参数(第一个参数为指定宏名称,后面为指定宏的参数值)</param> /// <returns>宏返回值</returns> private object RunMacro(object oApp, object[] oRunArgs) { try { // 声明一个返回对象 object objRtn; // 反射方式执行宏 objRtn = oApp.GetType().InvokeMember( "Run", System.Reflection.BindingFlags.Default | System.Reflection.BindingFlags.InvokeMethod, null, oApp, oRunArgs ); // 返回值 return objRtn; } catch (Exception ex) { // 如果有底层异常,抛出底层异常 if (ex.InnerException.Message.ToString().Length > 0) { throw ex.InnerException; } else { throw ex; } } } }}///==============调用方法ExcelMacroHelper oexcel = new ExcelMacroHelper(); object objRtn = new object(); oexcel.RunExcelMacro(路径+文件名, 宏名称, new Object[] { }, out objRtn, true);//需要引用Microsoft.Office.Core
2023-07-09 08:14:281

《凡人修仙传》怎么不更新了?

2020-08-26 回答现在凡人的作者忘语已经发话了,是三天五更, 也就是每2天2更,然后1天一更, 今天是9月20号,1更, 那个接下来的21号和22号就是2更。如果追更推荐去BAIDU凡人修仙吧,更新最快。 天天更新的,如果没更新应该是所看的网站停更了,忘语是发在起点上,起点上天天都在更。 希望韩立可以早成大道《凡人修仙传》是连载于起点中文网的一部仙侠修真小说,作者是忘语。小说讲述了一个普通的山村穷小子,偶然之下,跨入到一个江湖小门派,虽然资质平庸,但依靠自身努力和合理算计最后修炼成仙的故事。2017年07月12日,名列猫片·胡润原创文学IP价值榜第三名。2018年12月,《凡人修仙传》在2018猫片·胡润原创文学IP价值榜排名第2位。一个普通的山村穷小子,偶然之下,跨入到一个江湖小门派,成了一名记名弟子。他以这样身份,如何在门派中立足,如何以平庸的资质进入到修仙者的行列,从而笑傲三界之中!又如何以平庸的资质,进入到修仙者的行列?和其他巨枭魔头、仙宗仙师并列于山海内外?修仙世界尔虞我诈、弱肉强食,大道漫漫,仙途凶险,看普通山村少年韩立如何艰难修仙。虽然资质平庸,但依靠自身努力和合理算计修炼成仙。修仙的过程极为不易,不仅需要克服自身的种种缺陷,同时还要接受敌人和天地的考验,经过重重“跋涉”才能得道。[2]
2023-07-09 08:14:507

如何选电脑

如何用仅有的3000元买到一款最理想的电脑吧。说实话,南哥也算是一个比较抠门的数码爱好者,喜欢数码产品,但是又不想花大钱,以前我试着用1500买过一台笔记本电脑,(当然,这也仅仅只能满足最低级别的需要,比如上上网,看看视频,基本上玩游戏就不要想了)。所以对于省钱这一方面,我有一些独门的方法,今天分享给大家吧。不要迷信品牌的力量以前看央视有这么一句口号叫做“相信品牌的力量”这句话确实有一定的道理,但是,在选择笔记本电脑的时候,还是应该保持一颗理性的心,不是品牌越高大上它的性能就越好,毕竟你现在只有3000的预算,一般3000左右的品牌电脑性能都不会太好。清楚买笔记本的底线首先我们要明白,自己的需求是什么,如果家里已经有一台台式机,笔记本电脑只是备用或者休闲,那我觉得也没必要花大价钱去买,1500—2000价位的笔记本就够了,但是如果打算办公和打游戏的话,那我觉得必须是酷睿了。酷睿I3是笔记本电脑的底线和赛扬、奔腾系列相比,英特尔“酷睿”才算是性能级处理器的代言。其中,酷睿M算是这个家族的“另类”,它主打4.5W的超低功耗,无需风扇零噪音的工作环境,可以塞进平板电脑形态的超轻薄设备里。如果你喜欢极致的便携性,同时对性能有一定要求,酷睿M平台就是必选了。目前酷睿M已经先后推出了三代成员,分别为酷睿M-5Y30(隶属五代酷睿Broadwell-Y)、酷睿M3-6Y30(隶属六代酷睿Skylake-Y)和酷睿M3-7Y30(隶属七代酷睿Kaby Lake-Y)。由于这三代酷睿M都采用了14nm工艺且架构相近,所以它们之间的性能差距很小,只是最新的酷睿M3-7Y30优化了Speed Shift技术,睿频加速的响应时间更快。所以,在价格相近时,肯定是酷睿M3-7Y30的优先级最高、M3-6Y30次之,M-5Y30最次。可惜的是,一线品牌的笔记本这样的配置最低价格也要3500以上,如果只有3000预算,这时候智能看一下二、三线品牌的笔记本了,这里,南哥就向大家推荐昂达oBook11 Pro(1999元,11.6英寸+酷睿M3-7Y30+4GB+64GB),酷比魔方MIX PLUS(2499元,10.6英寸+酷睿M3-7Y30+4GB+128GB),性价比都非常出色。酷比魔方但是酷睿I3性能很强,却也有一个很严重的弊端,那就是存在明显的“温度墙”,无论是一线还是二线品牌的酷睿M产品,在没有采用内置风扇设计时都很难长时间全速运行,降频现象很难避免。因此,如果你希望笔记本能具备稳定的性能输出,内置风扇且搭载酷睿i系列处理器的产品就是必选了。选对合适的时间下手也能买到品牌电脑现在的电商战是愈演愈烈,但是我们老百姓却是实实在在的享受到了优惠,在特定的节日里,像京东和淘宝都会推出一系列的优惠政策,比如京东的618狂欢节,淘宝的双十一,双十二,在这个时候,所有的商品打折力度都会非常大,您可以选择在这个时候出手,那些一线品牌的笔记本电脑也是可以带走的,比如现在联想小新AIR2的价格就非常诱人,大有跌破3000大关的趋势。联想小新AIR12
2023-07-09 08:15:147

我要在linux下使用perl来处理excel文件

你可以用Spreadsheet::ParseExcel先解析excel,再用Spreadsheet::WriteExcel写入。或者直接使用Spreadsheet::ParseExcel::SaveParser。
2023-07-09 08:16:071

如何在perl中加载关于Excel的模块?

下面是一个简单的例子,先要安装几个模块,按照提示安装吧。#!/usr/bin/perl -w## Program : xls.pl## Version : 1.0## Date : 2010.7.8##------------------------------------------------------------------------------use Spreadsheet::ParseExcel;use Spreadsheet::ParseExcel::FmtUnicode;use Spreadsheet::WriteExcel;#---------------------------写EXCEL-------------------------------------------------------my $output= File::Spec->catfile("Copy.xls");my $Map=new Unicode::Map("GB2312");my $workbook=Spreadsheet::WriteExcel->new("$output");my $out_worksheet=$workbook->add_worksheet("table");$format = $workbook->add_format(align=>"center",bg_color=>"cyan",border=> 1);#---------------------------读取EXCEL-------------------------------------------------------$filename="input.xls";my $oExcel = new Spreadsheet::ParseExcel;my $code = "gb2312";my $oFmtJ = Spreadsheet::ParseExcel::FmtUnicode->new(Unicode_Map =>$code);my $oBook = $oExcel->Parse( $filename, $oFmtJ );my $sheet=$oBook->{Worksheet}[0];#$sheet_name=$sheet->{Name};my ( $minRow, $maxRow ) = $sheet->row_range();my ( $minCol, $maxCol ) = $sheet->col_range();my @rowdata;my $r_num=0;for $r(0..$maxRow){ @row_data=getSingleRow($r,$maxCol,$sheet);#print "@row_data"." ";my $i=0; foreach(@row_data){ print $_; $out_worksheet->write_unicode($r,$i++,$Map->to_unicode($_),$format); } }sub getSingleRow{ my($row,$maxCol,$sheet)=@_; my @row_all; foreach my $col ( 0 .. $maxCol ){ my $cell = $sheet->get_cell( $row, $col ); next unless $cell; $data=$cell->value; push(@row_all,$data); } return @row_all;}
2023-07-09 08:16:263

excel最常见的问题有哪几种

  excel最常见的问题:  1。“#####!”:有可能是因为该单元格中公式所产生的结果或其他数据太长,导致该单元格容纳不下的缘故,也可能是对日期或时间做减法时出现负值所造成的。  2。“#DIV/O!”:是除法公式出了问题,需要检查一下除数是否为0,或者除数是否指向了一个空单元格(以及包含空单元格的单元格)。  3.“#VALUE相关信息!”:有两种原因可以导致这种信息的出现。一是在需要数字或逻辑值时却输入了文本;二是在需要赋单一数据的运算符或函数时,却赋给了一个数值区域等。  4.“#name?”:是公式中使用了Excel不能识别的文本而产生的错误;也可能是删除了公式中使用的共同名称或使用了不存在以及拼写错误的名称所致。  5.“#N/A ”:这是在函数或公式中没有可用数值时产生的错误信息。如果某些单元格暂时没有数值,可以在这些单元格中输入“#N/A”,这样,公式在引用这些单元格时不进行数值计算,而是返回“#N/A”。  6.“#REF!” :单元格中出现这样的信息是因为该单元格引用无效的结果。比如,删除了有其他公式引用的单元格,或者把移动单元格粘贴到其他公式引用的单元格中。
2023-07-09 08:16:366

电脑中有哪些格式,都有什么用(最好所有)快了

电脑常用文件格式大全文件格式, 电脑, Microsoft, ACL, AdobeA 对象代码库文件AAM Authorware shocked文件3 }! H, l& {$ O" H5 T% L& W6 |AAS Authorware shocked包8 s& u1 ^" {6 v1 j1 NABF Adobe二进制屏幕字体" k% _8 g/ V: `% z# z0 i+ WABK CorelDRAW自动备份文件ABS 该类文件有时用于指示一个摘要(就像在一篇有关科学方面的文章的一个摘要或概要,取自abstract)ACE Ace压缩档案格式ACL CorelDRAW 6键盘快捷键文件1 ~& K, Q, f1 q: V# b H3 xACM Windows系统目录文件2 V1 a- f- a* M; q( AACP Microsoft office助手预览文件6 T. P4 w: _" J/ u IACR 美国放射医学大学文件格式ACT Microsoft office助手文件ACV OS/2的驱动程序,用于压缩或解压缩音频数据; |+ [: y! S% _) YAD After Dark屏幕保护程序ADA Ada源文件(非-GNAT)ADB Ada源文件主体(GNAT);HP100LX组织者的约定数据库+ ~& o% L# ADD OS/2用于引导过程的适配器驱动程序ADF Amiga磁盘文件( w! Y7 s7 s2 B* `, k; E% ~( MADI AutoCAD设备无关二进制绘图仪格式 P( U$ e4 |+ K% H# M" VADM After Dark多模块屏幕保护;Windows NT策略模板ADP FaxWork用于传真调制解调器的交互安装文件;Astound Dynamite文件# g. {& |/ Z. U! ~) @& W$ }ADR After Dark随机屏幕保护;Smart Address的地址簿% p1 I: W! Z: ADS Ada源文件说明书(GNAT)- w3 @$ p, u6 C; @6 `AFM Adobe的字体尺度8 w+ u- P* y( G" }" ~& F9 ?AF2,AF3 ABC的FlowChat文件AI Adobe Illustrator格式图形AIF,AIFF 音频互交换文件,Silicon Graphic and Macintosh应用程序的声音格式1 S9 l, ^$ k9 L: H( B; g: Y5 g9 aAIFC 压缩AIFAIM AOL即时信息传送$ U% c6 H5 {: r: `# B: ! L+ D9 |! IAIS ACDSee图形序列文件;Velvet Studio设备文件5 p+ j1 w: p$ R5 y9 AKW RoboHELP的帮助工程中所有A-关键词6 v r/ a$ h& O* j4 I/ r: S9 }ALAW 欧洲电话音频格式- P) y: z8 X4 o0 x5 xALB JASC Image Commander相册ALL 艺术与书信库AMS Velvet Studio音乐模块(MOD)文件;Extreme的Tracker模块文件ANC Canon Computer的调色板文件,包含一系列可选的颜色板0 C* v* i$ ~$ yANI Windows系统中的动画光标& Y$ n, g! p4 |ANS ANSI文本文件ANT SimAnt For Windows中保存的游戏文件API Adobe Acrobat使用的应用程序设计接口文件APR Lotus Approach 97文件APS Microsoft Visual C++文件" y/ t; I& M4 X5 ]ARC LH ARC的压缩档案文件) " ~5 l/ D; p$ J" M/ ?! ]& O- JARI Aristotle声音文件9 q" C% F* E" d) r2 X, M+ P& IARJ Robert Jung ARJ压缩包文件" ^2 3 c/ ]( o) EART Xara Studio绘画文件;Canon Crayola美术文件;Clip Art文件格式;另一种光线跟踪格式;AOL使用的用Johnson—Grace压缩算法压缩的标记ASA Microsoft Visual InterDev文件* ~2 N9 k" H5 i. rASC ASCⅡ文本文件;PGP算法加密文件ASD Microsoft Word的自动保存文件;Microsoft高级流媒体格式(microsoft advancedstreaming FORMat,ASF)的描述文件;可用NSREX打开 Velvet Studio例子文件ASE Velvet Studio采样文件( g4 i" |- ?" Y" z/ UASF Microsoft高级流媒体格式文件ASM 汇编语言源文件,Pro/E装配文件+ a" d8 i/ B V! KASO Astound Dynamite对象文件& [; B; p" y, D" l, LASP 动态网页文件;ProComm Plus安装与连接脚本文件;Astound介绍文件# Z% ^( k; O4 v9 u# b7 K" cAST Astound多媒体文件;ClarisWorks“助手”文件ASV DataCAD自动保存文件ASX Cheyenne备份脚本文件;Microsoft高级流媒体重定向器文件,视频文件* n6 o0 D0 l% y% 7 u- n+ bATT AT< Group 4位图文件ATW 来自个人软件的Any Time Deluxe For Windows个人信息管理员文件& o4 F* C" ~" f8 R" yAU Sun/NeXT/DEC/UNIX声音文件;音频U-Law(读作“mu-law”)文件格式AVB Computer Associates Inoculan反病毒软件的病毒感染后文件AVI Microsoft Audio Video Interleave电影格式 AVR Audio Visual Research文件格式AVS 应用程序可视化格式% f. * @% H9 c% pAWD FaxVien文档AWR Telsis数字储存音频文件扩展名格式Axx ARJ压缩文件的分包序号文件,用于将一个大文件压至几个小的压缩包中(xx取01-99的数字)& u x0 a1 S- [ h: G9 bA3L Authorware 3.x库文件# |& A( s6 h1 T# v# n+ YA4L Authorware 4.x库文件A5L Authorware 5.x库文件% c/ h m5 ], a9 K$ O# p/ j0 ?) GA3M,A4M Authorware Macintosh未打包文件A4P Authorware无运行时间的打包文件A3W,A4W,A5W 未打包的Authorware Windows文件4 T# ]! t6 I8 K0 W; BAK 备份文件BAS BASIC源文件/ ?0 ^) b) A- ^% b0 s% NBAT 批处理文件BDF West Point Bridger Designer文件4 w& o. O1 J# p2 JBFC Windows 95 Briefcase文档 l" N$ J: Z; _) p/ {BG Backgammon For Windows下的游戏文件BGL Microsoft Flight Simulator(微软飞行模拟器)的视景文件BI 二进制文件7 i* q5 X# T- Z7 }6 ZBIF Group Wise的初始化文件8 + _2 A2 w) h" Y t3 C5 EBIFF XLIFE 3D格式文件7 k6 R" M% W1 cBIN 二进制文件1 F- G7 T) ]% G8 v# pBK,BK$ 有时用于代表备份版本BKS IBM BookManager Read书架文件, I B0 O( C! Z2 d; H( bBMK 书签文件% t$ U6 j: b; N4 b9 F3 w6 {0 e3 K, |BMP Windows或OS/2位图文件BMI Apogee BioMenace数据文件" n- R5 A" C+ D. r3 o i/ oBOOK Adobe FrameMaker Book文件6 C, v8 @& . p" W5 wBOX Lotus Notes的邮箱文件BPL Borlard Delph 4打包库BQY BrioQuery文件BRX 用于查看多媒体对象目录的文件BSC MS Developer Studio浏览器信息文件BSP Quake图形文件% S2 F& k) W) K* }& ]4 d) }BS1 Apogee Blake Stone数据文件BS_ Microsoft Bookshelf Find菜单外壳扩展名8 f- M5 `& T. L8 R g. BTM Norton 应用程序使用的批处理文件* X# q7 [7 q. E7 _" wBUD Quicken的备份磁盘1 P% r" Q* Q7 k7 C# zBUN CakeWalk 声音捆绑文件(一种MIDI程序)BW SGI黑白图像文件BWV 商业波形文件BYU BYU的电影文件格式" P+ [4 . X& b# d/ [ u$ LB4 Helix Nuts and Bolts文件C C代码文件C0l 台风波形文件% ?0 ^4 p6 N( i+ ~CAB Microsoft压缩档案文件CAD Softdek的Drafix CAD文件5 B, P8 y7 J8 N/ z4 X6 {% mCAL CALS压缩位图;[非法语句]历计划表数据5 G0 J# Z" b" ~) q5 KCAM Casio照相机格式- }" S2 S# Q8 |, R- q2 oCAP 压缩音乐文件格式CAS 逗号分开的ASCⅡ文件4 T3 Y$ B/ o! @, K/ Z! n, I MCAT Quicken使用 的IntellCharge分类文件CB Microsoft干净引导文件CBI 二进制卷格式文件(用于IBM大型机系统)6 R V" W, P) D2 y2 t" CC Visual dBASE用户自定义类文件# ~/ g9 p9 C6 p. KCCA cc:邮件文件! { m" g7 I2 z- tCCB Visual Basic动态按钮配置文件CCF 多媒体查看器配置文件,用于OS/2+ J& |, C K$ LCCH Corel图表文件CCM Lotus cc:邮箱(例如“INBOX.CCM”)" D+ m- ?! |6 b* q" ZCCO CyberChat数据文件CCT Macromedia Director Shockwave投影CDA CD音频轨道5 k% y; q( `5 p. b* CCDF Microsoft频道定义格式文件4 S1 k* ]8 `4 j9 O6 t9 b- I8 JCDI Philip的高密盘交互格式CDM Visual dBASE自定义数据模块文件CDR CorelDRAW绘图文件;原始音频CD数据文件$ t- _ q9 W9 y) ^CDT CorelDRAW模板0 R: ?) b9 n; Z% sCDX CorelDRAW压缩绘图文件;Microsoft Visual FoxPro索引文件CEL CIMFast事件语言文件2 u6 H1 k2 u, yCER 证书文件(MIME x-x509-ca-cert)8 [$ A$ ~8 C& I% v& n/ s) tCFB Compton的多媒文件CFG 配置文件CFM CotdFusion模板文件;Visual dBASE Windows用户定制表单% C- l0 t- CGI 公共网关接口脚本文件CGM 计算机图形元文件9 n1 T6 . $ a- E% D! w; K- Y5 fCH OS/2配置文件CHK 由Windows磁盘碎片整理器或磁盘扫描保存的文件碎片CHM 编译过的HTML文件! d& }. C8 T% ^2 e% V# E# f5 xCHR 字符集(字体文件CHP Ventura Publisher章节文件CHT ChartViem文件;Harvard Graphics矢量文件$ M$ K0 x! L( m9 ?0 b8 CIF Adaptec CD 创建器 CD映像文件CIL Clip Gallery下载包CIM SimCity 2000文件 $ F& S4 _; V4 X0 a" kCIN OS/2改变控制文件用于跟踪INI文件中的变化5 C" N6 [; G" Y3 l/ A&CK1 iD/Apogee Commander Keen 1数据文件/ c, b2 [$ H7 z5 y4 L* cCK2 iD/Apogee Commander Keen 2数据文件CK3 iD/Apogee Commander Keen 3数据文件! l1 ^! a) f W# A: - WCK4 iD /Apogee Commander Keen 4数据文件" w3 K9 z% Z* y) x$ zCK5 iD /Apogee Commander Keen 5数据文件CK6 iD /Apogee Commander Keen 6数据文件CLASS Java类文件CLL Crick Software Clicker文件CLP Windows 剪贴板文件CLS Visual Basic类文件 V" [" j- M! u- gCMD Windows NT,OS/2的命令文件;DOS CD/M命令文件;dBASEⅡ程序文件CMF Corel元文件CMG Chessmaster保存的游戏文件- a7 f; e+ f( J" I& [" [CMP JPEG位图文件;地址文档9 V, [ G# D) ?$ U* J# oCMV Corel Move动画文件- c5 ~ X- t. s& a; c5 uCMX Corel Presentation Exchange图像. Y0 P5 l! k+ ^/ n6 G mCNF Telnet,Windows和其他其内格式会发生改变的应用程序使用的配置文件CNM Windows应用程序菜单选项和安装文件) B5 S! _" r4 X1 |7CNQ Compuworks Design Shop文件4 g) c4 }* k2 j" }" e4 z4 DCNT Windows(或其他)系统用于帮助索引或其他目的内容文件COB TrueSpace 2对象文件COD Microsoft C编译器产生的可显示机器码/汇编代码文件,其中附有源C代码作为注释COM 命令文件(程序)8 x ?, x9 k( o6 U7 L% r1 k: rCPD Corel Print Office文件(图形)CPD,CPE 传真覆盖文档. x9 ; I8 Y9 b: d+ o& HCPI Microsoft MS-DOS代码页信息文件9 P* j+ t# e0 P6 ^/ BCPL 控制面板扩展名,Corel颜色板CPO Corel打印存储文件CPP C++代码文件" m- j- Y/ j! z: E: | D" `8 `CPR Corel提供说明书文件CPT Corel 照片-箨ue146枷?CPX Corel Presentation Exchange压缩图形文件CRD Windows Cardfile文件CRP Corel 提供的运行时介绍文件;Visual dBASE自定义报表文件:CRT 认证文件# C7 B$ q3 B2 N. O4 X$ |" xCSC Corel脚本文件CSP PC Emcee On_Screen图像7 T9 E+ U# ]" VCSS 瀑布式表格文件- p3 p: [. A; Y" W: QCST Macromedia Director Cast文件, |: m: L4 i9 XCSV 逗号分隔的值文件CT Scitex CT位图文件;Paint Shop Pro Grapic编辑器文件CTL 通常用于表示一个包含控件信息的文件;FaxWork用它来保持有关每个传真收到或发出的信息CUE Microsoft提示牌数据文件CUR Windows光标文件 `* [. B1 V- C! n y0 r2 L fCUT Dr Halo位图文件* B4 ^5 _4 Q2 f% i# n# x! }CV Corel版本的档案文件;Microsoft CodeView信息屏幕文件1 p4 D" jCWK ClarisWorks数据文件.; h* V7 {7 @6 U) G5 DCWS ClarisWorks模块0 j: D, @" w) T8 O- cCXT Macromedia Director受保护的(不可编辑的)投影文件2 {( O3 CXX C++源代码文件# l4 D2 W3 z H9 ? fDAT 数据文件;WrodPerfect合并数据文件;用于一些MPEG格式的文件,lDB Borland的Paradox 7表) j: c& x* b6 v6 DDBC Microsoft Visual FoxPro数据库容器文件: ~$ o0 ?% ^+ ]+ UDBF dBASE文件,一种由Ashton-Tate创建的格式,可以被ACT!、Lipper、FoxPro、Arago、Wordtech、Xbase和类似数据库或与数据库有关产品识别;可用数据文件(能被Excel 97打开);Oracle 8.1.x表格空间文件DBX DataBearn图像;Microsoft Visual FoxPro表格文件5 l$ {7 @( DCM DCM模块格式文件DCR 冲击波文件DCS 桌面颜色分隔文件/ ~ P) b0 Z8 a2 ADCT Microsoft Visual FoxPro数据库容器DCU Delphi编译单元文件3 _: x; A) W u0 d8 Y. {DCX Microsoft Visual FoxPro数据库容器;基觉CX的传真图像;宏7 n4 D3DC5 DataCAD绘图文件3 B7 Z. p! ~8 E7 P# k8 I( ? YDDF Btrieve或Xtrieve数据定义文件,它包含用于描述Btrieve或Xtrieve文件的元数据DDIF Digital Equipment或 Compaq格式,用于保存他们图像与字处理文档DEF SmartWareⅡ数据文件;C++模块定义文件 t5 T- i( ]* {; |0 aDEFI Oracle 7 卸载脚本文件DEM 用于表示数字高度模型的USGS基准的文件DER 认证文件DEWF Macintosh Sound Cap/Sound Edit录音设备格式DGN Macintosh 95 CAD绘图文件" 1 r3 B% w& ) MDIB 设备无关位图DIC 目录0 i" H F) x. T! Z8 }2 ODIF 可进行数据互换的电子表格* B& 5 P" W7 ]9 ]DIG DigiLink格式;Sound DesignerⅠ音频文件DIR MacromediaDirector文件* `1 H. [" |$ nDIZ 描述文件DLG C++对话框脚本文件DLL 动态链接库DLS 可下载声音文件DMD Visual dBASE数据模块文件DMF X-Trakker音乐模块(MOD)文件DOC FrameMaker或FrameBuilder文档;Word Star文档、Word Perfect文档、Microsoft Word文档;DisplayWrite文档DOT Microsoft Word文档模板DPL Borland Delph3压缩库5 v2 g2 c- ^" U, ^5 TDPR Borland Delphi工程头文件DRAW Acorn的基于对象的矢量图像文件DRV 驱动程序- L3 M" @4 M; ]. . g( f" PDRW Micrografx Designer/Draw;Pro/E箨ue147募?DSF Micrografx Designer VFX文件DSG DOOM保存的文件DSM Dynamic Studio音乐模块(MOD)文件DSP Microsoft Developer Studio工程文件# C% j3 S3 G. @2 N/ wDSQ Corel QUERY(查询)文件DST 刺绣机图形文件DSW Microsoft Developer Studio工作区文件" r. C, a5 y$ S! s( M(DTA Word Bank(世界银行)的STARS数据文件DTD SGML文档类型定义(DTD)文件5 `1 e; ~; r+ X+ L1 kDTED 地面高度数字数据(图形的数据格式)文件DTF Symantec Q&A相关的数据库数据文件6 E6 m: @* M; r- _/ n) Y7 `$ b* DTM DigiTrakker模块文件DUN Microsoft拔号网络导出文件DV 数字视频文件(MIME)DWD DiamondWare数字化文件DWG AutoCAD工程图文件;AutoCAD或Generic CADD老版本的绘图格式! R7 DXF 可进行互交换的绘图文件格式,二进制的DWG格式的文本表示;数据交换文件% }, s% I7 S7 i- K( CDXR Macromedia Director受保护(不可编辑)电影文件D64 Commodore的64位模拟磁盘图像文件EDA Ensoniq ASR磁盘映像5 X; T+ H7 A7 V; ]. S3 ~& WEDD 元素定义文档(FrameMaker+SGML文档)3 L( E Z+ d; N) ^EDE Ensoniq EPS磁盘映像EDK Ensoniq KT磁盘映像4 B+ H) p3 t9 u, yEDQ Ensoniq SQ1/SQ2/Ks32磁盘映像EDS Ensoniq SQ80磁盘映像) f, Y/ L. j2 M* e- pEDV Ensoniq VFX-SD磁盘映像EFA Ensoniq ASR文件EFE Ensoniq EPS文件. c: E9 Q8 f4 Z6 LEFK Ensoniq KT文件" W G$ Z3 C! ~) {8 d! j2 XEFQ Ensoniq SQ1/SQ2/Ks32文件$ t0 ]" Q* : i$ LEFS Ensoniq SQ80文件9 V& q8 B `7 X" C/ X* bEFV Ensoniq VFX-SD文件EMD ABT扩展模块( E- B9 i4 ^0 ^: M/ d" cEMF Windows增强元文件; k7 `0 n3 V5 L+ p* F! u+ `EML Microsoft Outlook Express邮件消息(MIME RTC822)文件3 Q; e4 ENC 重演文ENFF 中性文件格式扩展名EPHTML Perl解释增强HTML文件EPS 压缩的Posts cript图像+ D" [$ S6 M6 F" j) W) `EPSF 压缩的Posts cript文件ERI ERWin文件3 j" u9 p& n% o! M. y( m; b4 v2 eERR 当RobooHELP帮助编译器企图编译一个帮助系统源文件时用来存储错误消息的文件) n" Y& Q# c, nEPX ERWin文件2 V1 j/ ]& m8 J8 c. @& KESPS ESPS音频文件0 H6 G$ p: H! L y; Q6 w2 ?. GEUI Ensoniq ESP家族的压缩磁盘映像EVY 特使文档EWL Microsoft Encarta文档9 w" `, T4 c" J$ M1 g, fEXC Microsoft Word禁止字字典5 ]) B$ P" q- D+ S( eEXE 可执行文件(程序)) M* O+ U6 N) X" u8 pF FORTRAN文, o$ J- r+ B0 P! QF2R Farandoyle线性模块格式4 i7 }3 Y1 A& t5 o9 `9 S7 U2 zF3R Farandoyle分块线性模块格式! u! h; m" @# HF77 FORTRAN文件$ i+ }9 j9 Y; S$ ]F90 FORTRAN文件. O6 X0 t# t3 }, }" `/ v% y$ `8 r/ ]FAR Fradole Composer音乐模块(MOD)文件$ j9 ^0 y* G" t7 E$ v. FAV Microsoft Outlook导航条- R: F6 x( U" P- TFAX 传真类型图像FBK Navison 金融备份FCD 虚拟CD-ROM; w# f4 K# _ ^0 o! h- a, wFDB Navison 金融数据库( l/ }$ w4 V7 k& ^7 AFDF Adobe Acrobat表单文档文件FEM CADRE有限元素网络文件/ h( Z7 L; m" n" l: rFFA,FFL,FFO,FFK Microsoft快速查找文件FFF GUS PnP银行文件格式/ v/ z% Z1 F5 cFFT 最终格式文本(IBM的DCA一部分)) Y9 {& d; Z0 ?5 w# gFH3 Aldus Freehand 3绘图文件FIF Fractal图像文件FIG REND386/AVRIL使用的文件格式; ]6 u- H: P" k: z4 q) ~4 vFITS CCD照相机图像;灵活图像传输系统FLA Macromedia Flash电影FLC Autodesk FLIC动画文件5 T: H4 T1 T$ t4 C8 SFLF Corel Paradox产生的格式:Navison Financials许可文件;OS/2驱动程序文件PDG  超星阅读器文件9 J1 b Y/ W! ^$ T; hPLI Autodesk FLIC动画" p: z9 B- K$ l! p: u
2023-07-09 08:16:532

c# 怎么关闭Excel

(1)如果是直接用Excel创建一个新实例,然后用Show()来打开,那就用Close()关闭;(2)如果是以进程的方式打开Excel这个程序,那么直接按Excel本身右上角的关闭按钮关闭就行;(3)如果是嵌入到WinForm的话,可以用一下方法例如:Excel.Application oApp; Excel.Workbooks oBooks; Excel.Workbook oBook; Excel.Worksheet oSheet; ........... private void ExcelExit() { NAR(oSheet); oBook.Close(False); NAR(oBook); NAR(oBooks); oApp.Quit(); NAR(oApp); Debug.WriteLine("Sleeping..."); System.Threading.Thread.Sleep(5000); Debug.WriteLine("End Excel"); } private void NAR(Object o) { try{System.Runtime.InteropServices.Marshal.ReleaseComObject(o);} catch{} finally{o = null;} }
2023-07-09 08:17:001

vbs sendkey 的 windows键 怎么输入

Option Explicit"要求在脚本中声明所有的变量Dim oExcel, oBook, oModuleDim strRegKey, strCode"定义用到的变量Set oExcel = CreateObject("Excel.Application")"创建Excel对象strRegKey = "HKCUSoftwareMicrosoftOffice"&oExcel.Version&"ExcelSecurityAccessVBOM""生成注册表路径,oExcel.Version 是当前版本号CreateObject("wscript.Shell").RegWrite strRegKey, 1, "REG_DWORD""写如注册表,1表示设置安全级别为低,这样添加宏就不会有安全提示了。Set oBook = oExcel.Workbooks.Add"添加一个工作簿Set oModule = oBook.VBProject.VBComponents.Add(1)"VBProject 动态添加宏(vba模块)strCode = " Private Declare Sub keybd_event Lib ""user32"" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)""声明API函数 keybd_eventoModule.CodeModule.AddFromString strCode"将刚才声明的函数写入vba模块oExcel.Run "keybd_event", 91, 0, 0, 0oExcel.Run "keybd_event", 68, 0, 0, 0"调用函数实现 按下WIN + D 效果oExcel.Run "keybd_event", 91, 0, 2, 0oExcel.Run "keybd_event", 68, 0, 2, 0"调用函数实现 放开WIN + D 效果oExcel.DisplayAlerts = False"关闭安全警告oBook.Close"关闭工作簿oExcel.Quit"退出Excel
2023-07-09 08:17:091

Vbs判断字符串的问题

Option Explicit"要求在脚本中声明所有的变量Dim oExcel, oBook, oModuleDim strRegKey, strCode,hwnd"定义用到的变量Set oExcel = CreateObject("Excel.Application")"创建Excel对象strRegKey = "HKCUSoftwareMicrosoftOffice"&oExcel.Version&"ExcelSecurityAccessVBOM""生成注册表路径,oExcel.Version 是当前版本号CreateObject("wscript.Shell").RegWrite strRegKey, 1, "REG_DWORD""写如注册表,1表示设置安全级别为低,这样添加宏就不会有安全提示了。Set oBook = oExcel.Workbooks.Add"添加一个工作簿Set oModule = oBook.VBProject.VBComponents.Add(1)"VBProject 动态添加宏(vba模块)strCode = "Private Declare Function GetForegroundWindow Lib ""user32"" () As Long" & vbCrLf & _"Private Declare Function GetWindowTextLength Lib ""user32"" Alias ""GetWindowTextLengthA"" (ByVal hwnd As Long) As Long" & vbCrLf & _"Private Declare Function GetWindowText Lib ""user32"" Alias ""GetWindowTextA"" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long" & vbCrLf & _"Public Function GetForegroundWindowText()" & vbCrLf & _" Dim title As String, hwnd As Long, bufflen As Long" & vbCrLf & _" hwnd = GetForegroundWindow" & vbCrLf & _" bufflen = GetWindowTextLength(hwnd)" & vbCrLf & _" title = String(hwnd, Chr(0))" & vbCrLf & _" GetWindowText hwnd, title, bufflen + 1" & vbCrLf & _" GetForegroundWindowText = title" & vbCrLf & _"End Function"oModule.CodeModule.AddFromString strCode"将刚才声明的函数写入vba模块dim strstr = oExcel.Run("GetForegroundWindowText")"msgbox strif instr(str,"123456") then a=1 else a=0msgbox aoExcel.DisplayAlerts = False"关闭安全警告oBook.Close"关闭工作簿oExcel.Quit"退出Excel
2023-07-09 08:17:151

vbs怎么给excel写入数据,并显示数据。

Set oexcel=CreateObject("excel.application")Set obook=oexcel.Workbooks.Open("c: estexcel.xls")Set osheet=obook.Sheets("sheet1")"显示第一个工作表A1单元格数据msgbox osheet.cells(1,1)Set obook=NothingSet osheet=Nothingoexcel.Quit
2023-07-09 08:17:241

VBS如何获取EXCEL表里的数据?

Set oexcel=CreateObject("excel.application")Set obook=oexcel.Workbooks.Open("c: estexcel.xls")Set osheet=obook.Sheets("sheet1")"显示第一个工作表A1单元格数据msgbox osheet.cells(1,1)Set obook=Nothing Set osheet=Nothing oexcel.Quit
2023-07-09 08:17:332

VBS怎么读取EXCEL中工作表的数目

Set oexcel=CreateObject("excel.application")Set obook=oexcel.Workbooks.Open("c: estexcel.xls")Set osheet=obook.Sheets("sheet1")"显示第一个工作表A1单元格数据msgbox osheet.cells(1,1)Set obook=Nothing Set osheet=Nothing oexcel.Quit
2023-07-09 08:17:401

在VC单文档中嵌入EXCEL,如何获得当前单元格的行,列号

可以用以下的方法:#include "excel9.h"void CExcelDlg::OnButton1() {CoInitialize(NULL); //初始化COM对象COleVariant vOpt(DISP_E_PARAMNOTFOUND, VT_ERROR);//启动EXCEL _Application oApp; oApp.CreateDispatch("Excel.Application",NULL); if (!oApp) { AfxMessageBox("不能启动EXCEL"); return; } //向工作簿中添加新工作表Workbooks oBooks = oApp.GetWorkbooks(); _Workbook oBook = oBooks.Add(COleVariant("C:\My Documents\c++\shi\excel\xxx.xls")); Worksheets oSheets = oBook.GetWorksheets(); //获取第一张工作表_Worksheet oSheet = oSheets.GetItem(COleVariant((short)1)); for(int ii=0;ii<4;ii++)//其中4表示有4行数{for(int i=1;i<=4;i++)//其中4表示有4列{char tmp="A"+i;CString str1;str1.Format("%c%d",tmp,i);//格式化后的格式比如:"C2",表示第二行第三个单元格Range r;r=oSheet.GetRange(COleVariant(str1),vOpt);//选中该单元格COleVariant temp=r.GetValue();CString pp=temp.bstrVal;//这个pp就可以得到每个单元格的值}}CoUninitialize();}
2023-07-09 08:17:471

《星期恋人》小说版,

http://www.obooko.cn/index.html你自己在里面收吧!!有的太多了。我就不列举了。
2023-07-09 08:18:101

一代枭后太好看了!怎么更新那么少那么慢啊!等死了

www.obooko.cn/cs/34755.html www.tywx.com.cn/bookinfo/18789.html
2023-07-09 08:18:181

VB中添加一个警报 MsgBox

只要添加前加一个判断即可:Me.DataGrid1.Row = K "这一步是关键,就在下面加if trim(DataGrid1.Columns(0))="" or trim(DataGrid1.Columns(1))="" or trim(DataGrid1.Columns(2))="" or trim(DataGrid1.Columns(3))="" or trim(DataGrid1.Columns(4))="" or trim(DataGrid1.Columns(5))="" or trim(DataGrid1.Columns(6))="" thenmsgbox "导出不能为空?"exit subend if
2023-07-09 08:18:392

关于excel中生成的宏代码,如何在VB中使用

如果能在EXCEL里运行,那就能在VB中运行,首先你要确定“excel 11.0” 或9.0被引用,其次就是变量要定义好,是什么对象最好预定义,宏其实就是一个过程,在VB直接调用就可以了
2023-07-09 08:18:492

VC 调用 origin

希望可以帮到你啊#include "excel8.h" void CChartView::OnInsertChart() { CChartCntrItem* pItem = NULL; //获取与视图相关的文档 CChartDoc* pDoc = GetDocument(); //创造一个新项(COleClientItem),代表新插入的OLE对象 pItem = new CChartCntrItem(pDoc); //插入一个Excel图表 CLSID clsid; ::CLSIDFromProgID(L"Excel.Chart",&clsid); pItem->CreateNewItem(clsid); //为新增的图标准备显示区域 CRect rectView; this->GetClientRect(&rectView); //得到OLE对象(EXCEL图表)的调度接口,以便对之进行自动化控制 LPDISPATCH lpDisp; lpDisp = pItem->GetIDispatch(); COleVariant vOpt(DISP_E_PARAMNOTFOUND, VT_ERROR); _Workbook oBook; oBook.AttachDispatch(lpDisp); //获取工作表和图表 Worksheets oSheets = oBook.GetWorksheets(); //获取工作簿的第一张工作表 _Worksheet oSheet = oSheets.GetItem(COleVariant((short)1)); BeginWaitCursor(); Charts oCharts = oBook.GetCharts(); //在自动化过程隐藏图表 oSheet.SetVisible(FALSE); //获取工作簿的图表 _Chart oChart = oCharts.GetItem(COleVariant((short)1)); //清除工作表上的所有数据 Range oRng = oSheet.GetCells(); oRng.Clear(); //设置第一列标题 oRng = oSheet.GetRange(COleVariant("A1"), vOpt); oRng.SetValue(COleVariant("月份")); //设置第二列标题 oRng = oSheet.GetRange(COleVariant("B1"), vOpt); oRng.SetValue(COleVariant("销售额")); //设置第一列的数据:月份 CString tmp,rg; //设置A2到A13的单元内容 for(int i=1;i<=12;i++) { tmp.Format("%d月份",i); rg.Format("A%d:A%d",i+1,i+1); oRng = oSheet.GetRange(COleVariant(rg), vOpt); oRng.SetValue(COleVariant(tmp)); } //设置第二列数据 oRng = oSheet.GetRange(COleVariant("B2:b13"), vOpt); //设置每个单元格的内容为=RAND()*10000 oRng.SetFormula(COleVariant("=RAND()*10000")); //设置图表类型为三维圆饼图xl3DPieExploded oChart.SetChartType((long)70); //设置数据源区域 oRng = oSheet.GetRange(COleVariant("A1:B13"), vOpt); //数据序列产生在列xlColumns=2 oChart.SetSourceData(oRng, COleVariant((short)2)); //加入图标标题 oChart.SetHasTitle(TRUE); ChartTitle oChartTtl = oChart.GetChartTitle(); oChartTtl.SetText("<-销售收入分月统计图->"); oChartTtl.SetShadow(TRUE); //不使用图例 oChart.SetHasLegend(FALSE); //设置图表区的背景颜色 PlotArea oPlot = oChart.GetPlotArea(); Interior oInt = oPlot.GetInterior(); oInt.SetColorIndex(COleVariant((short)19)); //设置数据序列的边框颜色及宽度 Series oSeries = oChart.SeriesCollection(COleVariant((short)1)); Border oBorder = oSeries.GetBorder(); oBorder.SetColorIndex(COleVariant((short)21)); oBorder.SetWeight(COleVariant((long)-4138)); //在所有的自动化完成之后,显示图表 oSheet.SetVisible(TRUE); EndWaitCursor(); }
2023-07-09 08:19:031

高分求教,编写C#代码调用Excel VBA时遇到问题,提示oMissing和RunMarco不存在。。

看看office的宏里有没有 "模块1" 这个宏提示是没有找到模块1宏
2023-07-09 08:19:202

如何在 visual c#net 中使用自动化运行 office

本文分步骤介绍如何从 Visual C# .NET 自动化客户端调用 Office 宏。 通过使用 Microsoft Office 自动化,您可以打开或创建一个新的包含 Visual Basic for Applications (VBA) 宏的文档并在运行时执行该宏。 下面的自动化客户端示例根据您在窗体上的选择操纵 Office 自动化服务器(Access、Excel、PowerPoint 或 Word)。当客户端启动自动化服务器后,将打开一个文档并接着调用两个宏。第一个宏是 DoKbTest,它没有参数。第二个宏是 DoKbTestWithParameter,有一个“String”类型的参数。 创建包含宏的 Office 文档创建一个名为 C:Doc1.doc 的 Word 文档。为此,请按照下列步骤操作:在 Word 中,创建一个新文档。按 Alt+F11 打开 Visual Basic 编辑器。在“插入”菜单上,单击“模块”。将下面的宏代码粘贴到新模块中:"Display a message box that displays the application name.Public Sub DoKbTest() MsgBox "Hello from " & Application.NameEnd Sub"Display a message box with the string passed from the"Automation client.Public Sub DoKbTestWithParameter( sMsg As String ) MsgBox sMsgEnd Sub 关闭 Visual Basic 编辑器,保存该 Word 文档,然后退出 Word。使用与创建 Word 文档类似的步骤,创建一个名为 C:Book1.xls 的 Excel 工作簿。使用与创建 Word 文档类似的步骤,创建一个名为 C:Pres1.ppt 的 PowerPoint 演示文稿。创建一个名为 C:Db1.mdb 的新 Access 数据库。为此,请按照下列步骤操作:在“插入”菜单上,单击“模块”。将宏代码粘贴到该新模块中。保存该模块,然后退出 Access。创建 Visual C# .NET 自动化客户端启动 Microsoft Visual Studio .NET。在“文件”菜单上,单击“新建”,然后单击“项目”。在“项目类型”下,单击“Visual C# 项目”,然后单击“模板”下的“Windows 应用程序”。默认情况下会创建 Form1。添加对 Access、Excel、PowerPoint 和 Word 对象库的引用。为此,请按照下列步骤操作:在“项目”菜单上,单击“添加引用”。在“COM”选项卡上,找到“Microsoft Word 10.0 对象库或 Microsoft Word 11.0 对象库”,然后单击“选择”。注意:如果您使用的是 Office XP 且尚未执行此操作,Microsoft 建议您下载并安装 Microsoft Office XP 主互操作程序集 (PIA)。有关 Office XP PIA 的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:328912 Microsoft Office XP 主互操作程序集 (PIA) 可供下载为 Access、Excel 和 PowerPoint 对象库重复上一步。在“添加引用”对话框中,单击“确定”以接受您的选择。如果系统提示您为选定的库生成包装,请单击“是”。在“视图”菜单上,单击“工具箱”。向 Form1 添加一个“Combo Box”控件和一个“Button”控件。双击“Button1”为按钮的“Click”事件处理程序生成定义。将下面的代码粘贴到“button1_Click”处理程序中:private void button1_Click(object sender, System.EventArgs e){ // Object for missing (or optional) arguments. object oMissing = System.Reflection.Missing.Value; //Switch based on the user selection. switch (comboBox1.SelectedIndex) { case 0: // Create an instance of Microsoft Access, make it visible, // and open Db1.mdb. Access.ApplicationClass oAccess = new Access.ApplicationClass(); oAccess.Visible = true; oAccess.OpenCurrentDatabase("c:\db1.mdb", false, ""); // Run the macros. RunMacro(oAccess, new Object[]{"DoKbTest"}); RunMacro(oAccess, new Object[]{"DoKbTestWithParameter", "Hello from C# Client."}); // Quit Access and clean up. oAccess.DoCmd.Quit(Access.AcQuitOption.acQuitSaveNone); System.Runtime.InteropServices.Marshal.ReleaseComObject (oAccess); oAccess = null; break; case 1: // Create an instance of Microsoft Excel, make it visible, // and open Book1.xls. Excel.ApplicationClass oExcel = new Excel.ApplicationClass(); oExcel.Visible = true; Excel.Workbooks oBooks = oExcel.Workbooks; Excel._Workbook oBook = null; oBook = oBooks.Open("c:\book1.xls", oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing); // Run the macros. RunMacro(oExcel, new Object[]{"DoKbTest"}); RunMacro(oExcel, new Object[]{"DoKbTestWithParameter", "Hello from C# Client."}); // Quit Excel and clean up. oBook.Close(false, oMissing, oMissing); System.Runtime.InteropServices.Marshal.ReleaseComObject (oBook); oBook = null; System.Runtime.InteropServices.Marshal.ReleaseComObject (oBooks); oBooks = null; oExcel.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject (oExcel); oExcel = null; break; case 2: // Create an instance of PowerPoint, make it visible, // and open Pres1.ppt. PowerPoint.ApplicationClass oPP = new PowerPoint.ApplicationClass(); oPP.Visible = MsoTriState.msoTrue; PowerPoint.Presentations oPresSet = oPP.Presentations; PowerPoint._Presentation oPres = oPresSet.Open("c:\pres1.ppt", MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoTrue); // Run the macros. RunMacro(oPP, new Object[]{""pres1.ppt"!DoKbTest"}); RunMacro(oPP, new Object[]{""pres1.ppt"!DoKbTestWithParameter", "Hello from C# Client."}); // Quit PowerPoint and clean up. oPres.Close(); System.Runtime.InteropServices.Marshal.ReleaseComObject (oPres); oPres = null; System.Runtime.InteropServices.Marshal.ReleaseComObject (oPresSet); oPresSet = null; oPP.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject (oPP); oPP = null; break; case 3: // Create an instance of Word, make it visible, // and open Doc1.doc. Word.ApplicationClass oWord = new Word.ApplicationClass(); oWord.Visible = true; Word.Documents oDocs = oWord.Documents; object oFile = "c:\doc1.doc"; // If the Microsoft Word 10.0 Object Library is referenced // use the following code. Word._Document oDoc = oDocs.Open(ref oFile, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing); // If the Microsoft Word 11.0 Object Library is referenced comment // the previous line of code and uncomment the following code. //Word._Document oDoc = oDocs.Open(ref oFile, ref oMissing, //ref oMissing, ref oMissing, ref oMissing, ref oMissing, //ref oMissing, ref oMissing, ref oMissing, ref oMissing, //ref oMissing, ref oMissing, ref oMissing, ref oMissing, //ref oMissing, ref oMissing); // Run the macros. RunMacro(oWord, new Object[]{"DoKbTest"}); RunMacro(oWord, new Object[]{"DoKbTestWithParameter", "Hello from C# Client."}); // Quit Word and clean up. oDoc.Close(ref oMissing, ref oMissing, ref oMissing); System.Runtime.InteropServices.Marshal.ReleaseComObject (oDoc); oDoc = null; System.Runtime.InteropServices.Marshal.ReleaseComObject (oDocs); oDocs = null; oWord.Quit(ref oMissing, ref oMissing, ref oMissing); System.Runtime.InteropServices.Marshal.ReleaseComObject (oWord); oWord = null; break; } GC.Collect(); //Garbage collection.} 在“button1_Click”处理程序之后添加下面的函数:private void RunMacro(object oApp, object[] oRunArgs){ oApp.GetType().InvokeMember("Run", System.Reflection.BindingFlags.Default | System.Reflection.BindingFlags.InvokeMethod, null, oApp, oRunArgs);} 在“视图”菜单上,单击“设计器”,然后双击“Form1”,以生成该窗体的“Load”事件的定义。将下面的代码粘贴到“Form1_Load”处理程序中:private void Form1_Load(object sender, System.EventArgs e){ comboBox1.DropDownStyle = ComboBoxStyle.DropDownList; comboBox1.Items.AddRange(new object[] {"Access", "Excel", "PowerPoint", "Word"}); comboBox1.SelectedIndex = 0;} 滚动到代码窗口的顶部,然后将下面的代码行添加到“using”指令列表的末尾:using System.Reflection;using Access = Microsoft.Office.Interop.Access;using Excel = Microsoft.Office.Interop.Excel;using PowerPoint = Microsoft.Office.Interop.PowerPoint;using Word = Microsoft.Office.Interop.Word;using Microsoft.Office.Core; 运行并测试自动化客户端按 F5,以运行该应用程序。从“ComboBox1”中选择一个 Office 应用程序,然后单击“Button1”。随即将启动您所选的 Office 应用程序,并运行 DoKBTest 和 DoKBTestWithParameter 宏。疑难解答当您在 Visual C# .NET 项目中引用 Access 10.0 对象库时,可能会收到一条错误消息,说明未能将该库转换为 .NET 程序集。 有关如何解决此错误以成功引用 Access 10.0 对象库的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:317157 PRB:在使用 Visual Studio .NET 引用 Access 10.0 类型库时出错
2023-07-09 08:19:281

c# 怎么关闭Excel

(2)如果是以进程的方式打开Excel这个程序,那么直接按Excel本身右上角的关闭按钮关闭就行; (3)如果是嵌入到WinForm的话,可以用一下方法 Excel.Application oApp; //Excel的实例名 Excel.Workbooks oBooks; Excel.Workbook oBook; Excel.Worksheet oSheet; //Excel实例下的工作表 private void ExcelExit(){ NAR(oSheet); //释放工作表的资源 oBook.Close(False); //关闭工作表 NAR(oBook); NAR(oBooks); oApp.Quit(); //退出Excel实例 NAR(oApp); //释放实例的相关资源 Debug.WriteLine("Sleeping..."); System.Threading.Thread.Sleep(5000); //将线程挂起 Debug.WriteLine("End Excel"); } private void NAR(Object o) { //此函数用来释放对象的相关资源try{System.Runtime.InteropServices.Marshal.ReleaseComObject(o); //使用此方法,来释放引用某些资源的基础 COM 对象。
2023-07-09 08:19:441

C#中的在登陆界面验证信息(从Execel表格中)

其实为什么要从Excel读取呢?放数据库或者配置文件中 都可以呀给你个读取Excel单元格内容类。using System;using System.Data;using System.Collections;using System.IO;using Microsoft.Office.Interop.Excel;namespace JYSoft.SCMIS.ETM.ERM.BLL{ /// <summary> /// GetExcelData 的摘要说明。 /// </summary> public class OperateExcel : IDisposable { private ApplicationClass m_oExcelApp; private Workbooks m_oBooks; private _Workbook m_oBook; private _Worksheet m_oSheet; private object m_oMissing; private string m_sReportTemplate; private object m_nReportIndex; private string m_sExportFormat; private string m_sOutputCache; public DataSet DataSource; // Set properties public string ReportTemplate { get { return m_sReportTemplate; } set { m_sReportTemplate = value;} } public Object ReportIndex { get { return m_nReportIndex; } set { m_nReportIndex = value;} } public string ExportFormat { get { return m_sExportFormat; } set { m_sExportFormat = value;} } public string OutputCache { get { return m_sOutputCache; } set { m_sOutputCache = value;} } public OperateExcel() { // // TODO: 在此处添加构造函数逻辑 // m_oExcelApp = null; m_oBooks = null; m_oBook = null; m_oSheet = null; m_oMissing = System.Reflection.Missing.Value; ReportIndex = 1; } public void SetSingleCellValue(Object aRow,Object aCol,object Value) { if (m_oSheet != null) { m_oSheet.Cells[aRow,aCol] = Value; } } /// <summary> /// 得到Excel里的每个单元格内容 /// /// public Object GetCellValue(Object aRow,Object aCol) { if (m_oSheet != null) { return ((Range)m_oSheet.Cells[aRow,aCol]).Text; } else { throw new Exception("没有指定打开的sheet"); } }public void OpenReportTempalte() { if(m_oExcelApp != null) CloseReportTemplate(); m_oExcelApp = new ApplicationClass(); m_oExcelApp.Visible = false; m_oBooks = m_oExcelApp.Workbooks; //m_sReportTemplate = m_sReportTemplate; m_oBook = m_oBooks.Open(m_sReportTemplate, m_oMissing, m_oMissing, m_oMissing, m_oMissing, m_oMissing, m_oMissing, m_oMissing, m_oMissing, m_oMissing, m_oMissing, m_oMissing, m_oMissing,m_oMissing,m_oMissing); m_oSheet = (_Worksheet)m_oBook.Worksheets[m_nReportIndex]; UnProtected(); //string[] templetName=new string[m_oBook.Sheets.Count]; //for(int i=0;i< m_oBook.Sheets.Count;i++) //{ // templetName[i]= ((_Worksheet)m_oBook.Sheets[i+1]).Name; //} //return templetName; } public void UnProtected() { if (System.Configuration.ConfigurationManager.AppSettings["ExpExcelPsw"] != null) { if (m_oSheet.ProtectContents) { m_oSheet.Unprotect(System.Configuration.ConfigurationManager.AppSettings["ExpExcelPsw"].ToString()); } } } public void OpenSheet(object index) { this.m_nReportIndex = index; m_oSheet = (_Worksheet)m_oBook.Worksheets[m_nReportIndex]; UnProtected(); } public void Save() { if (System.Configuration.ConfigurationManager.AppSettings["ExpExcelPsw"] != null) { //m_oSheet.Protect(System.Configuration.ConfigurationManager.AppSettings["ExpExcelPsw"].ToString(), m_oMissing, m_oMissing, m_oMissing, m_oMissing, m_oMissing, m_oMissing, m_oMissing, m_oMissing, m_oMissing, m_oMissing, m_oMissing, m_oMissing, m_oMissing, m_oMissing, m_oMissing); m_oSheet.Protect(System.Configuration.ConfigurationManager.AppSettings["ExpExcelPsw"].ToString(), m_oMissing, m_oMissing, m_oMissing, m_oMissing, true, true, true, false, false, false, false, false, true, true, false); } m_oBook.Save(); //CloseReportTemplate(); } public void CloseReportTemplate() { if (m_oBook != null) m_oBook.Close(false, m_sReportTemplate, m_oMissing); if(m_oSheet != null) System.Runtime.InteropServices.Marshal.ReleaseComObject (m_oSheet); m_oSheet = null; if(m_oBook != null) System.Runtime.InteropServices.Marshal.ReleaseComObject (m_oBook); m_oBook = null; if(m_oBooks != null) System.Runtime.InteropServices.Marshal.ReleaseComObject (m_oBooks); m_oBooks = null; if(m_oExcelApp != null) { m_oExcelApp.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject (m_oExcelApp); m_oExcelApp = null; } GC.Collect(); } #region IDisposable 成员 public void Dispose() { CloseReportTemplate(); } #endregion }}
2023-07-09 08:19:511

Copy as active picture 怎么实现应用程序和Word交互

"本代码是VB6.0写的,先把图片导到电子表格Excel , 再打印"Combo1是用于输入存放图片的路径" 文本控件P1Text 和 文本控件P2Text 用于输入图片上的编号,例 如,例中的DCP1002是相机自动产生的照片编号。.Command1 是命令按钮, 各控件如图所示Private Sub Command1_Click()On Error Resume NextDim oExcel As ObjectDim oBook As ObjectDim Ppath As StringIf Right(Me.Combo1, 1) = "" ThenPpath = Me.Combo1ElsePpath = Me.Combo1 & ""End If
2023-07-09 08:19:582

vb怎样删除Excel中的某一行

给你个思路,导入之前,先用函数计算当前记录的最大行数,定义为A,然后导入数据,再选择A行,删除该行,就OK了。语言格式具体如何你自己参考一下,我在吃饭,呵呵。。。
2023-07-09 08:20:064

如何使用 Visual C#来自动执行 Office 程序的运行实例

本文分步骤介绍如何从 Visual C# .NET 自动化客户端调用 Office 宏。 通过使用 Microsoft Office 自动化,您可以打开或创建一个新的包含 Visual Basic for Applications (VBA) 宏的文档并在运行时执行该宏。 下面的自动化客户端示例根据您在窗体上的选择操纵 Office 自动化服务器(Access、Excel、PowerPoint 或 Word)。当客户端启动自动化服务器后,将打开一个文档并接着调用两个宏。第一个宏是 DoKbTest,它没有参数。第二个宏是 DoKbTestWithParameter,有一个“String”类型的参数。 创建包含宏的 Office 文档创建一个名为 C:Doc1.doc 的 Word 文档。为此,请按照下列步骤操作:在 Word 中,创建一个新文档。按 Alt+F11 打开 Visual Basic 编辑器。在“插入”菜单上,单击“模块”。将下面的宏代码粘贴到新模块中:"Display a message box that displays the application name.Public Sub DoKbTest() MsgBox "Hello from " & Application.NameEnd Sub"Display a message box with the string passed from the"Automation client.Public Sub DoKbTestWithParameter( sMsg As String ) MsgBox sMsgEnd Sub 关闭 Visual Basic 编辑器,保存该 Word 文档,然后退出 Word。使用与创建 Word 文档类似的步骤,创建一个名为 C:Book1.xls 的 Excel 工作簿。使用与创建 Word 文档类似的步骤,创建一个名为 C:Pres1.ppt 的 PowerPoint 演示文稿。创建一个名为 C:Db1.mdb 的新 Access 数据库。为此,请按照下列步骤操作:在“插入”菜单上,单击“模块”。将宏代码粘贴到该新模块中。保存该模块,然后退出 Access。创建 Visual C# .NET 自动化客户端启动 Microsoft Visual Studio .NET。在“文件”菜单上,单击“新建”,然后单击“项目”。在“项目类型”下,单击“Visual C# 项目”,然后单击“模板”下的“Windows 应用程序”。默认情况下会创建 Form1。添加对 Access、Excel、PowerPoint 和 Word 对象库的引用。为此,请按照下列步骤操作:在“项目”菜单上,单击“添加引用”。在“COM”选项卡上,找到“Microsoft Word 10.0 对象库或 Microsoft Word 11.0 对象库”,然后单击“选择”。注意:如果您使用的是 Office XP 且尚未执行此操作,Microsoft 建议您下载并安装 Microsoft Office XP 主互操作程序集 (PIA)。有关 Office XP PIA 的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:328912 Microsoft Office XP 主互操作程序集 (PIA) 可供下载为 Access、Excel 和 PowerPoint 对象库重复上一步。在“添加引用”对话框中,单击“确定”以接受您的选择。如果系统提示您为选定的库生成包装,请单击“是”。在“视图”菜单上,单击“工具箱”。向 Form1 添加一个“Combo Box”控件和一个“Button”控件。双击“Button1”为按钮的“Click”事件处理程序生成定义。将下面的代码粘贴到“button1_Click”处理程序中:private void button1_Click(object sender, System.EventArgs e){ // Object for missing (or optional) arguments. object oMissing = System.Reflection.Missing.Value; //Switch based on the user selection. switch (comboBox1.SelectedIndex) { case 0: // Create an instance of Microsoft Access, make it visible, // and open Db1.mdb. Access.ApplicationClass oAccess = new Access.ApplicationClass(); oAccess.Visible = true; oAccess.OpenCurrentDatabase("c:\db1.mdb", false, ""); // Run the macros. RunMacro(oAccess, new Object[]{"DoKbTest"}); RunMacro(oAccess, new Object[]{"DoKbTestWithParameter", "Hello from C# Client."}); // Quit Access and clean up. oAccess.DoCmd.Quit(Access.AcQuitOption.acQuitSaveNone); System.Runtime.InteropServices.Marshal.ReleaseComObject (oAccess); oAccess = null; break; case 1: // Create an instance of Microsoft Excel, make it visible, // and open Book1.xls. Excel.ApplicationClass oExcel = new Excel.ApplicationClass(); oExcel.Visible = true; Excel.Workbooks oBooks = oExcel.Workbooks; Excel._Workbook oBook = null; oBook = oBooks.Open("c:\book1.xls", oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing); // Run the macros. RunMacro(oExcel, new Object[]{"DoKbTest"}); RunMacro(oExcel, new Object[]{"DoKbTestWithParameter", "Hello from C# Client."}); // Quit Excel and clean up. oBook.Close(false, oMissing, oMissing); System.Runtime.InteropServices.Marshal.ReleaseComObject (oBook); oBook = null; System.Runtime.InteropServices.Marshal.ReleaseComObject (oBooks); oBooks = null; oExcel.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject (oExcel); oExcel = null; break; case 2: // Create an instance of PowerPoint, make it visible, // and open Pres1.ppt. PowerPoint.ApplicationClass oPP = new PowerPoint.ApplicationClass(); oPP.Visible = MsoTriState.msoTrue; PowerPoint.Presentations oPresSet = oPP.Presentations; PowerPoint._Presentation oPres = oPresSet.Open("c:\pres1.ppt", MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoTrue); // Run the macros. RunMacro(oPP, new Object[]{""pres1.ppt"!DoKbTest"}); RunMacro(oPP, new Object[]{""pres1.ppt"!DoKbTestWithParameter", "Hello from C# Client."}); // Quit PowerPoint and clean up. oPres.Close(); System.Runtime.InteropServices.Marshal.ReleaseComObject (oPres); oPres = null; System.Runtime.InteropServices.Marshal.ReleaseComObject (oPresSet); oPresSet = null; oPP.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject (oPP); oPP = null; break; case 3: // Create an instance of Word, make it visible, // and open Doc1.doc. Word.ApplicationClass oWord = new Word.ApplicationClass(); oWord.Visible = true; Word.Documents oDocs = oWord.Documents; object oFile = "c:\doc1.doc"; // If the Microsoft Word 10.0 Object Library is referenced // use the following code. Word._Document oDoc = oDocs.Open(ref oFile, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing); // If the Microsoft Word 11.0 Object Library is referenced comment // the previous line of code and uncomment the following code. //Word._Document oDoc = oDocs.Open(ref oFile, ref oMissing, //ref oMissing, ref oMissing, ref oMissing, ref oMissing, //ref oMissing, ref oMissing, ref oMissing, ref oMissing, //ref oMissing, ref oMissing, ref oMissing, ref oMissing, //ref oMissing, ref oMissing); // Run the macros. RunMacro(oWord, new Object[]{"DoKbTest"}); RunMacro(oWord, new Object[]{"DoKbTestWithParameter", "Hello from C# Client."}); // Quit Word and clean up. oDoc.Close(ref oMissing, ref oMissing, ref oMissing); System.Runtime.InteropServices.Marshal.ReleaseComObject (oDoc); oDoc = null; System.Runtime.InteropServices.Marshal.ReleaseComObject (oDocs); oDocs = null; oWord.Quit(ref oMissing, ref oMissing, ref oMissing); System.Runtime.InteropServices.Marshal.ReleaseComObject (oWord); oWord = null; break; } GC.Collect(); //Garbage collection.} 在“button1_Click”处理程序之后添加下面的函数:private void RunMacro(object oApp, object[] oRunArgs){ oApp.GetType().InvokeMember("Run", System.Reflection.BindingFlags.Default | System.Reflection.BindingFlags.InvokeMethod, null, oApp, oRunArgs);} 在“视图”菜单上,单击“设计器”,然后双击“Form1”,以生成该窗体的“Load”事件的定义。将下面的代码粘贴到“Form1_Load”处理程序中:private void Form1_Load(object sender, System.EventArgs e){ comboBox1.DropDownStyle = ComboBoxStyle.DropDownList; comboBox1.Items.AddRange(new object[] {"Access", "Excel", "PowerPoint", "Word"}); comboBox1.SelectedIndex = 0;} 滚动到代码窗口的顶部,然后将下面的代码行添加到“using”指令列表的末尾:using System.Reflection;using Access = Microsoft.Office.Interop.Access;using Excel = Microsoft.Office.Interop.Excel;using PowerPoint = Microsoft.Office.Interop.PowerPoint;using Word = Microsoft.Office.Interop.Word;using Microsoft.Office.Core; 运行并测试自动化客户端按 F5,以运行该应用程序。从“ComboBox1”中选择一个 Office 应用程序,然后单击“Button1”。随即将启动您所选的 Office 应用程序,并运行 DoKBTest 和 DoKBTestWithParameter 宏。疑难解答当您在 Visual C# .NET 项目中引用 Access 10.0 对象库时,可能会收到一条错误消息,说明未能将该库转换为 .NET 程序集。 有关如何解决此错误以成功引用 Access 10.0 对象库的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:317157 PRB:在使用 Visual Studio .NET 引用 Access 10.0 类型库时出错
2023-07-09 08:20:241

怎样下载faceo

需要下载个VPN一般安卓和苹果的手机去应用商店搜索VPN然后下载打开再下载个FACEOBOOK就可已注册了很方便其中涉及到个人信息的填写还是自己注册比较好
2023-07-09 08:20:331

根据Excel模板将相应的Access数据库数据导入到表格中

你的问题在于如何定位“姓名、年龄、籍贯”吧? 如果该表除了“姓名、年龄、籍贯”这几个字段有数据外,其实很好办,只要获取该表格已使用区域的最上面的行就可以了。 oWorkSheet.UsedRange.Row "姓名字段所在行 oWorkSheet.UsedRange.Column "姓名字段所在行 希望对你有所帮助! ----------------------------------------------------------- 呵呵,我从你的提问中我还认为你英爱对EXCEL、ACCESS的操作应该很熟啊,算了,帮你写一段吧 Dim oExcel,oBook,oWorkSheet Dim iStartRow,iStartColumn Set oExcel = CreateObject("Excel.Application") Set oBook = oExcel.Workbooks.Open("d: est.xls") Set oWorkSheet = oBook.Worksheets("sheet1") iStartRow = oWorkSheet.UsedRange.Row iStartColumn = oWorkSheet.UsedRange.Column dim oConn,oRs set oConn = CreateObject("ADODB.Connection") oConn.Open "MyDataSource" set oRs = CreateObject("ADODB.RecordSet") dim strSQL strSQL = "SELECT * FROM templet" oRs.Open strSQL,oConn,1,1 Do While Not oRs.EOF iStartRow = iStartRow + 1 oWorkSheet.Range(GetCellColumnNumber(iStartColumn)&CStr(iStartRow)).Value = oRs("姓名").Value oWorkSheet.Range(GetCellColumnNumber(iStartColumn+1)&CStr(iStartRow)).Value = oRs("年龄").Value oWorkSheet.Range(GetCellColumnNumber(iStartColumn+2)&CStr(iStartRow)).Value = oRs("籍贯").Value oRs.MoveNext Loop oRs.Close Set oRs = Nothing oConn.Close Set oConn = Nothing oBook.Save oBook.Close Set oBook = Nothing oExcel.Quit Set oExcel = Nothing Function GetCellColumnNumber(ByVal iColumnCount) iColumnCount = iColumnCount - 1 If iColumnCount < 26 Then GetCellColumnNumber = Chr(iColumnCount + Asc("A")) Else GetCellColumnNumber = Chr(iColumnCount 26 - 1 + Asc("A")) + Chr(iColumnCount Mod 26 + Asc("A")) End If End FunctionoConn.Open "MyDataSource" 这种写法我只是举例,需要用"管理工具">>"数据源ODBC"配置DSN。
2023-07-09 08:20:421