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); } }
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); }
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); } }