Пример #1
0
        private void btnOpen_Click(object sender, EventArgs e)
        {
            try
            {
                var pnl = tabControl.SelectedTab.Tag as FlowLayoutPanel;
                if (pnl == null)
                {
                    throw new ApplicationException();
                }
                var ontology = pnl.Tag as OntologyData;
                if (ontology == null)
                {
                    throw new ApplicationException();
                }
                var selectElements = new List <CommandColHeader>();
                foreach (var item in pnl.Controls)
                {
                    var checkBox = item as CheckBox;
                    if (checkBox != null)
                    {
                        var chkb = checkBox;
                        if (chkb.Checked)
                        {
                            var element = (ElementData)checkBox.Tag;
                            selectElements.Add(new CommandColHeader()
                            {
                                Code = element.Key,
                                Name = element.Name
                            });
                        }
                    }
                }
                if (selectElements.Count == 0)
                {
                    MessageBox.Show("没有勾选任何项");
                    return;
                }

                var commandModel = new CommandWorkbook(ontology.Name, ontology.Code, selectElements);
                // 操作Excel
                HSSFWorkbook hssfworkbook = commandModel.Workbook;

                string dataBaseDir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Template");
                if (!Directory.Exists(dataBaseDir))
                {
                    Directory.CreateDirectory(dataBaseDir);
                }
                FileStream fs = File.Open(Path.Combine(dataBaseDir, ontology.Code + "Template.xls"), FileMode.OpenOrCreate);
                hssfworkbook.Write(fs);
                fs.Flush();
                fs.Close();
                System.Diagnostics.Process.Start("EXCEL.EXE", fs.Name);
                this.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Пример #2
0
 public ActionResult DownloadTemplate(string ontologyCode, string elements)
 {
     OntologyDescriptor ontology;
     if (!AcDomain.NodeHost.Ontologies.TryGetOntology(ontologyCode, out ontology))
     {
         throw new ValidationException("非法的本体码" + ontologyCode);
     }
     var selectElements = new List<CommandColHeader>();
     if (string.IsNullOrEmpty(elements))
     {
         throw new ValidationException("未选中任何项");
     }
     else
     {
         string[] elementCodes = elements.Split(',');
         foreach (var elementCode in elementCodes)
         {
             ElementDescriptor element;
             if (!ontology.Elements.TryGetValue(elementCode, out element))
             {
                 throw new ValidationException("意外的本体元素码" + elementCode);
             }
             else
             {
                 if (element.Element.IsEnabled != 1)
                 {
                     continue;
                 }
                 selectElements.Add(new CommandColHeader()
                 {
                     Code = element.Element.Code,
                     Name = element.Element.Name
                 });
             }
         }
     }
     if (selectElements.Count == 0)
     {
         throw new ValidationException("selectElements为空");
     }
     var commandModel = new CommandWorkbook(ontology.Ontology.Name, ontology.Ontology.Code, selectElements);
     // 操作Excel
     HSSFWorkbook hssfworkbook = commandModel.Workbook;
     var filestream = new MemoryStream(); //内存文件流(应该可以写成普通的文件流)
     hssfworkbook.Write(filestream); //把文件读到内存流里面
     const string contentType = "application/vnd.ms-excel";
     string fileName = ontology.Ontology.Name + "模板.xls";
     if (Request.Browser.Type.IndexOf("IE", StringComparison.OrdinalIgnoreCase) > -1)
     {
         fileName = HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8);
     }
     Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}", fileName));
     Response.Clear();
     return new FileContentResult(filestream.GetBuffer(), contentType);
 }
Пример #3
0
        private void btnOpen_Click(object sender, EventArgs e)
        {
            try
            {
                var pnl = tabControl.SelectedTab.Tag as FlowLayoutPanel;
                if (pnl == null)
                {
                    throw new ApplicationException();
                }
                var ontology = pnl.Tag as OntologyData;
                if (ontology == null)
                {
                    throw new ApplicationException();
                }
                var selectElements = new List<CommandColHeader>();
                foreach (var item in pnl.Controls)
                {
                    var checkBox = item as CheckBox;
                    if (checkBox != null)
                    {
                        var chkb = checkBox;
                        if (chkb.Checked)
                        {
                            var element = (ElementData)checkBox.Tag;
                            selectElements.Add(new CommandColHeader()
                            {
                                Code = element.Key,
                                Name = element.Name
                            });
                        }
                    }
                }
                if (selectElements.Count == 0)
                {
                    MessageBox.Show("没有勾选任何项");
                    return;
                }

                var commandModel = new CommandWorkbook(ontology.Name, ontology.Code, selectElements);
                // 操作Excel
                HSSFWorkbook hssfworkbook = commandModel.Workbook;

                string dataBaseDir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Template");
                if (!Directory.Exists(dataBaseDir))
                {
                    Directory.CreateDirectory(dataBaseDir);
                }
                FileStream fs = File.Open(Path.Combine(dataBaseDir, ontology.Code + "Template.xls"), FileMode.OpenOrCreate);
                hssfworkbook.Write(fs);
                fs.Flush();
                fs.Close();
                System.Diagnostics.Process.Start("EXCEL.EXE", fs.Name);
                this.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }