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;
        }
Пример #2
0
 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;
 }
Пример #3
0
        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);
        }
Пример #4
0
        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;
            }
        }
Пример #5
0
        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;
            }
            
        }