国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C# 讀取帶CheckBox復(fù)選框控件的表格-并集成到Windows Service里面

這篇具有很好參考價(jià)值的文章主要介紹了C# 讀取帶CheckBox復(fù)選框控件的表格-并集成到Windows Service里面。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

最近的項(xiàng)目要求讀取xls文件內(nèi)的單元格,并且單元格旁邊會(huì)有復(fù)選框標(biāo)識(shí)類(lèi)型。

搜了下只有java的POI有例子,NOPI看項(xiàng)目文檔好像是沒(méi)有實(shí)現(xiàn)讀取控件的功能。

java實(shí)現(xiàn) POI?

POI如何解析出excel 中復(fù)選框是否被選中

https://blog.csdn.net/qq_29832217/article/details/104413475?

C#導(dǎo)出 Excel 時(shí), 生成 CheckBox 控件??https://www.cnblogs.com/wisdo/p/9970922.html

?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-632345.html

?

?

直接上代碼:

 1 using Excel = Microsoft.Office.Interop.Excel;
 2 using Range = Microsoft.Office.Interop.Excel.Range;
 3 using Shape = Microsoft.Office.Interop.Excel.Shape;
 4 var excelApp = new Excel.Application();
 5       var excelApp = new Excel.Application();
 6     Excel.Workbook wb = null;
 7     excelApp.Visible = true;//代碼運(yùn)行時(shí)是否顯示excel界面
 8     excelApp.DisplayAlerts = false;//代碼運(yùn)行時(shí)是否顯示警告
 9     excelApp.AlertBeforeOverwriting = false;//覆蓋保存的時(shí)候是否提示
10     fi = new FileInfo(filepath);
11     var counter = 0;
12     string name = "";
13     try
14     {
15     wb = excelApp.Workbooks.Open(fi.FullName);//打開(kāi)excel文件。
16     Excel.Worksheet ws = wb.Worksheets[3] as Excel.Worksheet;//選擇對(duì)應(yīng) sheet
17     //var control = ws.Shapes._Default(0);
18     var count = ws.Shapes.Count;//獲取總過(guò)有多少相關(guān)控件,一個(gè)控件需要一個(gè)shape
19     var chk = ws.CheckBoxes(1);//通過(guò)CheckBoxes的下標(biāo)去獲取CheckBox 最大值看excel表格的sheet里面有多少個(gè)
20     var chk1 = ws.CheckBoxes(13);//廠標(biāo)
21     var chk2 = ws.CheckBoxes(14);//特殊要求
22     string PumpColor = "";
23     if (chk1.Value == 1)
24     {
25     PumpColor = chk1.Text + ":" + PumpColorDes;
26     }
27     if (chk2.Value == 1)
28     {
29     PumpColor = chk2.Text + ":" + PumpColorDes;
30     }
31     if (chk1.Value != 1 && chk2.Value != 1)
32     PumpColor = PumpColorDes;
33     this.txtFopResult.Text = PumpColor.Replace("\n","\r\n");
34 }
35     catch (Exception ex)
36     {
37     MessageBox.Show(ex.Message);
38     }
39     finally
40     {
41     excelApp.Quit(); //退出excel應(yīng)用,否則進(jìn)程會(huì)一直存在
42     excelApp = null;
43     }

?

?

查找控件其實(shí)比較簡(jiǎn)單,但是因?yàn)橄瓤戳俗钌厦鎯蓚€(gè)例子,測(cè)試的時(shí)候發(fā)現(xiàn)所有的CheckBox并不會(huì)都讀取到。然后分析了一下里面Worksheets的類(lèi)型。相關(guān)的控件類(lèi)型可以直接取出來(lái),但是類(lèi)型是dyncmic類(lèi)型的,所以調(diào)試的時(shí)候看變量什么的不方便。

C# 讀取帶CheckBox復(fù)選框控件的表格-并集成到Windows Service里面

?相關(guān)的屬性字段可以從官網(wǎng)查詢(xún),然后調(diào)試的時(shí)候,從VS的監(jiān)視變量里去手動(dòng)讀取。

C# 讀取帶CheckBox復(fù)選框控件的表格-并集成到Windows Service里面

?

C# 讀取帶CheckBox復(fù)選框控件的表格-并集成到Windows Service里面

定位這些CheckBox可以通過(guò)修改一下這個(gè)CheckBox的名字,或者選中狀態(tài),或者CheckBox.Text顯示的文字,如果excel模板是固定的,一般獲取用的下標(biāo)就是固定的。

我這里用的是? 13和14,測(cè)試了別的用同一個(gè)模板做的表格都正常解析了。

20     var chk1 = ws.CheckBoxes(13);//廠標(biāo)
21     var chk2 = ws.CheckBoxes(14);//特殊要求

?

番外:

使用過(guò)程中的報(bào)錯(cuò),WInForm能正常運(yùn)行并解析表格,但是集成進(jìn)Windows Service后,就報(bào) 無(wú)法訪問(wèn)。

C# 讀取帶CheckBox復(fù)選框控件的表格-并集成到Windows Service里面

?

參考了下面兩個(gè)例子。

?

Microsoft Office Excel不能訪問(wèn)文件*.xls的解決方案

檢索 COM 類(lèi)工廠中 CLSID 為 {00024500-0000-0000-C000-000000000046} 的組件時(shí)失 敗,原因是出現(xiàn)以下錯(cuò)誤: 80080005

集成到Windows servcie報(bào)錯(cuò)的解決方法(不一定正確,我是這樣試了然后就正常了的)

第一步,找到部署的Windows服務(wù)實(shí)例,進(jìn)入【屬性】——【登錄】界面。 勾選 【允許服務(wù)與桌面交互】,這個(gè)默認(rèn)是沒(méi)有勾選上的。

C# 讀取帶CheckBox復(fù)選框控件的表格-并集成到Windows Service里面

第二部,按照上面連接的給的例子,例子是 部署在IIS上,在組件服務(wù)里的DCOM -Microsoft Excel Appliction 增加NETWORK SERVICE用戶(hù)權(quán)限,我這邊因?yàn)槭遣渴鹪趦?nèi)網(wǎng),就直接把相關(guān)選項(xiàng)的權(quán)限設(shè)置成Everyone。

C# 讀取帶CheckBox復(fù)選框控件的表格-并集成到Windows Service里面

?

?并設(shè)置 【標(biāo)識(shí)】欄目的,不要設(shè)置成【交互式用戶(hù)】,交互式用戶(hù)需要服務(wù)器登錄進(jìn)去,才有用,比如遠(yuǎn)程桌面登錄進(jìn)去,但是一把遠(yuǎn)程桌面關(guān)掉,用戶(hù)就注銷(xiāo)了,DCOM組件就用不了了,之前在金蝶也碰到這個(gè)現(xiàn)象,遠(yuǎn)程進(jìn)去后,再斷開(kāi),他們客戶(hù)端就連不上,再遠(yuǎn)程桌面登錄進(jìn)去,又能用了。

選擇下列用戶(hù),并從【瀏覽】按鈕進(jìn)去選擇用戶(hù),不要自己手動(dòng)輸入,手動(dòng)輸入可能的是沒(méi)用的(我自己手輸入我電腦的用戶(hù)名,密碼也是對(duì)的,點(diǎn)應(yīng)用也驗(yàn)證通過(guò)了,但是就是不行) 記住,設(shè)置完如果還沒(méi)用,重啟下電腦或者服務(wù)器看看

C# 讀取帶CheckBox復(fù)選框控件的表格-并集成到Windows Service里面

?

到了這里,關(guān)于C# 讀取帶CheckBox復(fù)選框控件的表格-并集成到Windows Service里面的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包