关于Excel操作编写的一个软件设计构思案例[连载]

您所在的位置:网站首页 设计构思图是什么软件 关于Excel操作编写的一个软件设计构思案例[连载]

关于Excel操作编写的一个软件设计构思案例[连载]

2024-07-10 22:20| 来源: 网络整理| 查看: 265

最近紧急开发一个操作Excel文档软件,经过大约5天左右不懈努力,终于完成。

先上2张图看看界面:

这是为从一串字符中提取地址而紧急设计,边使用边开发,软件虽小而且简单,可是并非开始构思的那样简单想法:只要提取需要字符出来填到对应单元格内就可以导入数据库了,而是,随着基本功能的实现,发现可以让程序做更多的工作,从而扩展的功能也随之开发,而且是越开发越多,最后,菜单竟然有十几项。

使用控件不多:2个DataGridView,一个Treeview,2个splitContainer构成主界面元素。

其中树和显示数据代码都是使用发布过的直接应用,所以,可以快速完成开发工作。

设计完成之余,随手玩玩手动添加树节点和多维数组,组成一个自定义表,该表用于生成一颗树,如上2图所示,先发代码如下:

/**/ 地址分类树.Nodes.Add("极乐世界"); 地址分类树.Nodes[0].Nodes.Add("佛"); 地址分类树.Nodes[0].Nodes[0].Nodes.Add("阿弥陀"); 地址分类树.Nodes[0].Nodes[0].Nodes[0].Nodes.Add("菩萨"); 地址分类树.Nodes[0].Nodes[0].Nodes[0].Nodes.Add("圣众"); 地址分类树.Nodes[0].Nodes[0].Nodes[0].Nodes[0].Nodes.Add("观世音"); 地址分类树.Nodes[0].Nodes[0].Nodes[0].Nodes[0].Nodes.Add("大势至"); 地址分类树.Nodes[0].Nodes[0].Nodes[0].Nodes[1].Nodes.Add("无量"); 地址分类树.Nodes.Add("娑婆世界"); 地址分类树.Nodes[1].Nodes.Add("劫名"); 地址分类树.Nodes[1].Nodes[0].Nodes.Add("庄严"); 地址分类树.Nodes[1].Nodes[0].Nodes.Add("贤"); 地址分类树.Nodes[1].Nodes[0].Nodes[0].Nodes.Add("佛"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes.Add("佛"); 地址分类树.Nodes[1].Nodes[0].Nodes[0].Nodes[0].Nodes.Add("毗婆尸"); 地址分类树.Nodes[1].Nodes[0].Nodes[0].Nodes[0].Nodes.Add("尸弃"); 地址分类树.Nodes[1].Nodes[0].Nodes[0].Nodes[0].Nodes.Add("毗舍浮"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes.Add("拘留孙"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes.Add("拘那含牟尼"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes.Add("迦叶"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes.Add("释迦牟尼"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes.Add("菩萨"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes.Add("祖师"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[0].Nodes.Add("观世音"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[0].Nodes.Add("大势至"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[0].Nodes.Add("文殊"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[0].Nodes.Add("普贤"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[0].Nodes.Add("地藏"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[0].Nodes.Add("弥勒"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("摩诃迦叶"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("阿难"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("商那和修"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("优波毱多"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("提多迦"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("弥遮迦"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("婆须蜜多"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("佛驮难提"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("伏驮蜜多"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("脇"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("富那夜奢"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("马呜"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("迦毗摩罗"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("龙树"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("迦那提婆"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("罗睺罗多"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("僧伽难提"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("伽耶舍多"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("鸠摩罗多"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("阇耶多"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("婆修盘头"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("摩拏罗"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("鹤勒那"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("师子"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("婆舍斯多"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("不如蜜多"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("般若多罗"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("菩提达摩"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("慧可"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("僧璨"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("道信"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("弘忍"); 地址分类树.Nodes[1].Nodes[0].Nodes[1].Nodes[0].Nodes[3].Nodes[1].Nodes.Add("慧能"); 地址分类树.ExpandAll();

上面是手动添加,下面发如何把上面这些信息构成一个表,以及用这个表去生树:

DataTable 佛表 = new DataTable(); 佛表.TableName = "佛表"; string[] 名 = new string[] { "世界", "劫名", "佛号", "菩萨", "圣众" }; foreach (string 数据 in 名) 佛表.Columns.Add(数据); string[, , , ,] 称 = new string[, , , ,] { { { { { "极乐世界", "无量劫", "阿弥陀佛", "大菩萨", "观世音" }, { "极乐世界", "无量劫", "阿弥陀佛", "大菩萨", "大势至" }, { "极乐世界", "无量劫", "阿弥陀佛", "圣众", "无量" }, { "娑婆世界", "庄严劫", "毗婆尸佛", "大菩萨", "无量" }, { "娑婆世界", "庄严劫", "尸弃佛", "大菩萨", "无量" }, { "娑婆世界", "庄严劫", "毗舍浮佛", "大菩萨", "无量" }, { "娑婆世界", "庄严劫", "毗婆尸佛", "圣众", "无量" }, { "娑婆世界", "庄严劫", "尸弃佛", "圣众", "无量" }, { "娑婆世界", "庄严劫", "毗舍浮佛", "圣众", "无量" }, { "娑婆世界", "贤劫(千佛)", "拘留孙佛", "大菩萨", "无量" }, { "娑婆世界", "贤劫(千佛)", "拘那含牟尼佛", "大菩萨", "无量" }, { "娑婆世界", "贤劫(千佛)", "迦叶佛", "大菩萨", "无量" }, { "娑婆世界", "贤劫(千佛)", "拘留孙佛", "圣众", "无量" }, { "娑婆世界", "贤劫(千佛)", "拘那含牟尼佛", "圣众", "无量" }, { "娑婆世界", "贤劫(千佛)", "迦叶佛", "圣众", "无量" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "大菩萨", "观世音" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "大菩萨", "大势至" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "大菩萨", "文殊" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "大菩萨", "普贤" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "大菩萨", "地藏" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "大菩萨", "弥勒" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "摩诃迦叶" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "阿难" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "商那和修" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "优波毱多" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "提多迦" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "弥遮迦" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "婆须蜜多" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "佛驮难提" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "伏驮蜜多" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "脇" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "富那夜奢" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "马呜" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "迦毗摩罗" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "龙树" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "迦那提婆" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "罗睺罗多" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "僧伽难提" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "伽耶舍多" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "鸠摩罗多" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "阇耶多" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "婆修盘头" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "摩拏罗" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "鹤勒那" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "师子" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "婆舍斯多" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "不如蜜多" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "般若多罗" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "菩提达摩" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "慧可" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "僧璨" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "道信" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "弘忍" }, { "娑婆世界", "贤劫(千佛)", "释迦牟尼佛", "禅宗祖师", "慧能" } } } } }; int 行 = 0, 列 = 0; foreach (string 数据 in 称) { if (列 == 0)佛表.Rows.Add(); 佛表.Rows[行][列] = 数据; 列++; if (列 == 5) { 行++; 列 = 0; } } 玄龙戏珠无级树(佛表);

之后将逐步发代码和讲解软件构思和设计具体细节,以及一些细节设计的理由和判断条件限制,做为一个案例,当然,知道自己水平有限,只是看新学提问就多,故此发布,仅资参考,抛砖引玉而已。

下次将发布软件开发最首要关心的问题,如何打开Excel文件,获取需要列的数据显示到表格内做修改。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3