Office中國(guó)論壇/Access中國(guó)論壇

 找回密碼
 注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

返回列表 發(fā)新帖
查看: 10466|回復(fù): 5
打印 上一主題 下一主題

【練習(xí)】Dictionary去除源數(shù)據(jù)中的重復(fù)項(xiàng)

[復(fù)制鏈接]

點(diǎn)擊這里給我發(fā)消息

跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2014-2-28 15:02:48 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
本帖最后由 faunus 于 2014-2-28 16:42 編輯




這是剛擼的代碼,新鮮熱辣。作用嘛就是為了將"數(shù)據(jù)表"中A列的單位名稱去重后放到碗里去(combobox控件)。閑話不講,直接上代碼:
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Windows.Forms;
  7. using System.Xml.Linq;
  8. using Microsoft.Office.Tools.Excel;
  9. using Microsoft.VisualStudio.Tools.Applications.Runtime;
  10. using Excel = Microsoft.Office.Interop.Excel;
  11. using Office = Microsoft.Office.Core;

  12. namespace Test
  13. {
  14.     public partial class Sheet1
  15.     {
  16.         private void Sheet1_Startup(object sender, System.EventArgs e)
  17.         {
  18.             Excel.Worksheet shD = Application.ActiveWorkbook.Worksheets["數(shù)據(jù)表"];
  19.             Excel.Range rnAll = shD.Range["A2:A" + Convert.ToString(shD.Range["A1"].End[Excel.XlDirection.xlDown].Row)];
  20.             Dictionary<String,Int32> dicName1 = new Dictionary<string,Int32>();
  21.             String  valStr;
  22.             foreach (Excel.Range rn in rnAll)
  23.             {
  24.                valStr = Convert.ToString(rn.Value);
  25.                dicName1[valStr] = rn.Row;
  26.             }
  27.             Dictionary<string, Int32>.KeyCollection keyColl = dicName1.Keys;                       
  28.             foreach (string s in keyColl)
  29.             {
  30.                 comboBox1.Items.Add(s);
  31.             }               
  32.         }

  33.         private void Sheet1_Shutdown(object sender, System.EventArgs e)
  34.         {
  35.         }

  36.         #region VSTO 設(shè)計(jì)器生成的代碼

  37.         /// <summary>
  38.         /// 設(shè)計(jì)器支持所需的方法 - 不要
  39.         /// 使用代碼編輯器修改此方法的內(nèi)容。
  40.         /// </summary>
  41.         private void InternalStartup()
  42.         {
  43.             this.Startup += new System.EventHandler(this.Sheet1_Startup);
  44.             this.Shutdown += new System.EventHandler(this.Sheet1_Shutdown);
  45.         }

  46.         #endregion

  47.         public EventHandler comboBox1_SelectedIndexChanged { get; set; }
  48.         public MouseEventHandler comboBox1_MouseClick { get; set; }
  49.         public Excel.DocEvents_ActivateEventHandler Sheet1_ActivateEvent { get; set; }
  50.         public Excel.DocEvents_ChangeEventHandler Sheet1_Change { get; set; }      
  51.     }
  52. }
復(fù)制代碼
下面是附件,有興趣的盆友可下載了試一試。
能想到的運(yùn)行環(huán)境(office2010-vs2010),在此謝謝(佛爺、汪老師、西西)

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒(méi)有帳號(hào)?注冊(cè)

x

評(píng)分

參與人數(shù) 1V幣 +3 收起 理由
faunus + 3 (V幣)優(yōu)秀原創(chuàng)教程、管理建議(1-5分)

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享分享 分享淘帖 訂閱訂閱
2#
發(fā)表于 2014-2-28 16:44:24 | 只看該作者
今天 擼這個(gè)。
3#
發(fā)表于 2014-2-28 19:37:04 | 只看該作者
已擼。
不過(guò)有點(diǎn)疑問(wèn),似乎不應(yīng)該使用外接程序吧?這個(gè)明明是涉及到工作薄的具體操作。是否應(yīng)該從工作薄入口進(jìn)去寫(xiě)碼?
對(duì)C# 容器和泛型完全不懂,擼完也是一頭霧水
4#
發(fā)表于 2014-3-1 09:38:03 | 只看該作者
昨天沒(méi)顧上,今天擼
5#
發(fā)表于 2014-3-4 09:01:12 | 只看該作者
代碼能做一下注釋就好了,容易理解思路。
6#
發(fā)表于 2014-5-7 21:29:09 | 只看該作者
遍歷區(qū)域的方法。在VBA里一般是將數(shù)據(jù)讀取到數(shù)組中,然后遍歷數(shù)組?戳税胩煲矝](méi)找到像VBA那樣將區(qū)域轉(zhuǎn)數(shù)組的方法。哎!
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則

QQ|站長(zhǎng)郵箱|小黑屋|手機(jī)版|Office中國(guó)/Access中國(guó) ( 粵ICP備10043721號(hào)-1 )  

GMT+8, 2024-10-23 06:16 , Processed in 0.116585 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表