public ToxySpreadsheet LoadData(DataContext context) { Database db = DatabaseFactory.CreateDatabase(context.ConnectionStringName); DbCommand cmd=db.GetSqlStringCommand(context.QueryString); ToxySpreadsheet ss = new ToxySpreadsheet(); ss.Name = context.ConnectionStringName; int i=0; using(IDataReader reader=db.ExecuteReader(cmd)) { ToxyTable table = new ToxyTable(); table.Name = "Sheet1"; ToxyRow row=new ToxyRow(i); if (i == 0) { for (int j = 0; j < reader.FieldCount; j++) { row.Cells.Add(new ToxyCell(j, reader.GetName(i))); } } else { for (int j = 0; j < reader.FieldCount; j++) { string value=reader.GetString(j); if(!string.IsNullOrEmpty(value)) row.Cells.Add(new ToxyCell(j, value)); } } table.Rows.Add(row); i++; ss.Tables.Add(table); } return ss; }
public object Clone() { ToxySpreadsheet newss = new ToxySpreadsheet(); newss.Name = this.Name; for (int i = 0; i < this.Tables.Count; i++) { newss.Tables.Add(this.Tables[i].Clone() as ToxyTable); } return newss; }
public object Clone() { ToxySpreadsheet newss = new ToxySpreadsheet(); newss.Name = this.Name; for (int i = 0; i < this.Tables.Count; i++) { newss.Tables.Add(this.Tables[i].Clone() as ToxyTable); } return(newss); }
private void ShowDocument(string filepath, string encoding, string extension) { ParserContext context = new ParserContext(filepath); context.Encoding = Encoding.GetEncoding(encoding); if (Mode == ViewMode.Text) { AppendRichTextBox(); var tparser = ParserFactory.CreateText(context); rtbPanel.Text = tparser.Parse(); tbParserType.Text = tparser.GetType().Name; } else if (Mode == ViewMode.Structured) { switch (extension) { case ".csv": AppendSpreadsheetGrid(); context.Properties.Add("HasHeader", "1"); ISpreadsheetParser csvparser = ParserFactory.CreateSpreadsheet(context); ss = csvparser.Parse(); tbParserType.Text = csvparser.GetType().Name; var table1 = ss.Tables[0]; ShowToGrid(table1); cbSheets.Items.Clear(); foreach (var table in ss.Tables) { cbSheets.Items.Add(table.Name); } cbSheets.SelectedIndex = 0; panel1.Visible = true; break; case ".xlsx": case ".xls": AppendSpreadsheetGrid(); ISpreadsheetParser ssparser = ParserFactory.CreateSpreadsheet(context); ss = ssparser.Parse(); tbParserType.Text = ssparser.GetType().Name; var table0 = ss.Tables[0]; ShowToGrid(table0); cbSheets.Items.Clear(); foreach (var table in ss.Tables) { cbSheets.Items.Add(table.Name); } cbSheets.SelectedIndex = 0; panel1.Visible = true; break; case ".vcf": AppendDataGridView(); var vparser = ParserFactory.CreateVCard(context); ToxyBusinessCards vcards = vparser.Parse(); tbParserType.Text = vparser.GetType().Name; gridPanel.GridView.DataSource = vcards.ToDataTable().DefaultView; break; case ".pptx": //TODO: show slides break; case ".xml": case ".htm": case ".html": AppendTreePanel(); var domparser = ParserFactory.CreateDom(context); ToxyDom htmlDom = domparser.Parse(); TreeNode rootNode = treePanel.Tree.Nodes.Add(htmlDom.Root.NodeString); treePanel.Tree.BeginUpdate(); AppendTree(rootNode, htmlDom.Root); treePanel.Tree.EndUpdate(); //rootNode.ExpandAll(); break; } } else { AppendPropertyListPanel(); var tparser = ParserFactory.CreateMetadata(context); ToxyMetadata metadatas = tparser.Parse(); plPanel.Clear(); foreach (var data in metadatas) { plPanel.AddItem(data.Name, data.Value.ToString()); } tbParserType.Text = tparser.GetType().Name; } }
private void OpenFile(string filepath, string encoding) { if (string.IsNullOrWhiteSpace(filepath)) { tbPath.Clear(); return; } tbPath.Text = filepath; FileInfo fi = new FileInfo(filepath); ParserContext context = new ParserContext(filepath); context.Encoding = Encoding.GetEncoding(encoding); string extension = fi.Extension.ToLower(); tbExtension.Text = extension; panel1.Visible = false; switch (extension) { case ".txt": case ".html": case ".htm": case ".pdf": AppendRichTextBox(); var tparser = ParserFactory.CreateText(context); richTextBox1.Text = tparser.Parse(); tbParserType.Text = tparser.GetType().Name; break; case ".rtf": case ".docx": AppendRichTextBox(); IDocumentParser docparser = ParserFactory.CreateDocument(context); ToxyDocument doc = docparser.Parse(); tbParserType.Text = docparser.GetType().Name; richTextBox1.Text = doc.ToString(); break; case ".csv": case ".xlsx": case ".xls": AppendSpreadsheetGrid(); ISpreadsheetParser ssparser = ParserFactory.CreateSpreadsheet(context); ss = ssparser.Parse(); tbParserType.Text = ssparser.GetType().Name; //DataSet ds = ss.ToDataSet(); //dataGridView1.DataSource = ds.Tables[0].DefaultView; var table0=ss.Tables[0]; ShowToGrid(table0); cbSheets.Items.Clear(); foreach (var table in ss.Tables) { cbSheets.Items.Add(table.Name); } cbSheets.SelectedIndex = 0; panel1.Visible = true; break; case ".vcf": AppendDataGridView(); var vparser = ParserFactory.CreateVCard(context); ToxyBusinessCards vcards = vparser.Parse(); tbParserType.Text = vparser.GetType().Name; dataGridView1.DataSource =vcards.ToDataTable().DefaultView; break; default: AppendRichTextBox(); richTextBox1.Text = "Unknown document"; tbParserType.Text = ""; break; } }