Ejemplo n.º 1
0
        /// <summary>
        /// Lance l'exportation des données vers le path choisit, à l'appuie sur le bouton "Exporter"
        /// </summary>
        /// <param name="Sender"></param>
        /// <param name="Event"></param>
        private void ExportButton_Click(object Sender, EventArgs Event)
        {
            // met le maximun de la progress bar au nombre de ligne
            ExportProgressBar.Maximum = ArticleDAO.NbArticles();


            try
            {
                // écrit les titres des colonnes en première ligne
                var csv = new StringBuilder();
                var TitleQuantityAndDescriptionRow = "Description";
                var TitleRefRow       = "Ref";
                var TitleBrandRow     = "Marque";
                var TitleFamilyRow    = "Famille";
                var TitleSubFamilyRow = "Sous-Famille";
                var TitlePriceRow     = "Prix H.T.";

                ExportProgressBar.PerformStep();

                // formate cette ligne puis l'ajoute au csv
                var TitleLine = string.Format("{0};{1};{2};{3};{4};{5}", TitleQuantityAndDescriptionRow, TitleRefRow, TitleBrandRow, TitleFamilyRow, TitleSubFamilyRow, TitlePriceRow);
                csv.AppendLine(TitleLine);
                // fait la meme chose pour tout les articles de la bd
                Article[] AllArticle = ArticleDAO.GetAllArticles();
                foreach (Article A in AllArticle)
                {
                    // une ligne est crée, on avance donc d'une étape dans la progress bar
                    ExportProgressBar.PerformStep();
                    var QuantityAndDescriptionRow = A.Quantity + " " + A.Description;
                    var RefRow       = A.RefArticle;
                    var BrandRow     = A.RefBrand.ToString();
                    var FamilyRow    = A.RefSubFamily.RefFamily.ToString();
                    var SubFamilyRow = A.RefSubFamily.ToString();
                    var PriceRow     = A.PriceHT.ToString();
                    var NewLine      = string.Format("{0};{1};{2};{3};{4};{5}", QuantityAndDescriptionRow, RefRow, BrandRow, FamilyRow, SubFamilyRow, PriceRow);
                    csv.AppendLine(NewLine);
                }

                // ecrit les données dans le fichier au path choisit
                File.WriteAllText(CSVNameTextBox.Text, csv.ToString());
            }
            catch (Exception ExceptionCaught)
            {
                MessageBox.Show("L'export à échoué \n" + ExceptionCaught.Message.ToString(), ExceptionCaught.GetType().ToString());
            }
            this.Close();
        }
Ejemplo n.º 2
0
        //生成EXCEL
        private void btnExistExcel_Click(object sender, RoutedEventArgs e)
        {
            if (dateTimeCollection == null)
            {
                MessageBox.Show("需要加载数据才能生成Excel", "温馨提示", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                return;
            }


            SaveFileDialog saveDialog = new SaveFileDialog();

            saveDialog.Title  = "选择保存Excel的路径";
            saveDialog.Filter = "工作表|*.xlsx|所有文件|*.*";
            bool?saveFlag = saveDialog.ShowDialog();

            if (!(bool)saveFlag)
            {
                //取消保存
                return;
            }
            filePath = saveDialog.FileName;
            if (filePath == null)
            {
                MessageBox.Show("保存文件名不可为空");
                return;
            }

            //excel标志位置为true
            excelFlag = true;
            //创建进度条数据绑定对象
            epg = new ExportProgressBar();
            //绑定
            pgb.DataContext      = epg;
            pgbCount.DataContext = epg;
            //启动新线程,开始创建excel文件
            task_Task();
        }
Ejemplo n.º 3
0
        private void ExportGridFast() //Exporta el grid rápidamente a un archivo de excel (experimental)
        {
            // TODO: Ajustar ancho de columnas, eliminar la columna A de excel (está vacía)
            SaveFileDialog sfd = new SaveFileDialog
            {
                Filter        = "Excel (*.xlsx)|*.xlsx",
                FileName      = OutFileNameTextBox.Text + ".xlsx",
                Title         = "Guardar como archivo de excel",
                DefaultExt    = ".xlsx",
                ValidateNames = true
            };

            if (sfd.ShowDialog() == DialogResult.OK)
            {
                XMLDataGridView.SelectAll();
                DataObject dataObj = XMLDataGridView.GetClipboardContent();
                if (dataObj != null)
                {
                    Clipboard.SetDataObject(dataObj);
                }
                Microsoft.Office.Interop.Excel._Application app       = new Microsoft.Office.Interop.Excel.Application();
                Microsoft.Office.Interop.Excel._Workbook    workbook  = app.Workbooks.Add(Type.Missing);
                Microsoft.Office.Interop.Excel._Worksheet   worksheet = null;
                object misValue = System.Reflection.Missing.Value;
                try
                {
                    app.Visible = false;
                    worksheet   = workbook.Sheets[1];
                    worksheet   = workbook.ActiveSheet;
                    List <DataGridViewColumn> listVisible = new List <DataGridViewColumn>();
                    foreach (DataGridViewColumn col in XMLDataGridView.Columns)
                    {
                        if (col.Visible)
                        {
                            listVisible.Add(col);
                        }
                    }
                    for (int i = 0; i < listVisible.Count; i++)
                    {
                        worksheet.Cells[1, i + 2] = listVisible[i].HeaderText;
                        ExportProgressBar.PerformStep();
                    }
                    app.Visible = false;
                    worksheet   = workbook.Sheets[1];
                    worksheet   = workbook.ActiveSheet;
                    Microsoft.Office.Interop.Excel.Range CR = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[2, 1];
                    CR.Select();
                    worksheet.PasteSpecial(CR, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, true);
                    worksheet.Columns["A"].Delete();
                    worksheet.Columns.AutoFit();
                    ExportProgressBar.Value = ExportProgressBar.Maximum;
                    MessageBox.Show("El archivo fue exportado con éxito.", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    if (File.Exists(sfd.FileName))
                    {
                        try
                        {
                            File.Delete(sfd.FileName); //Elimina el archivo existente
                        }
                        catch (IOException ex)
                        {
                            MessageBox.Show("No fue posible eliminar el archivo anterior. " + ex.Message);
                            return;
                        }
                    }
                    if (MessageBox.Show("¿Deseas abrir el archivo generado?", "Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        workbook.SaveAs(sfd.FileName);
                        workbook.Saved = true;
                        app.Visible    = true;
                    }
                    else
                    {
                        workbook.SaveAs(sfd.FileName);
                        workbook.Saved = true;
                        workbook.Close(false);
                    }
                }
                catch (Exception e)
                {
                    workbook.Close(false);
                    MessageBox.Show(e.Message);
                }
                XMLDataGridView.ClearSelection();
            }
        }
Ejemplo n.º 4
0
        private void ExportGridToXLSX() //Exporta el grid a un archivo de excel
        {
            SaveFileDialog sfd = new SaveFileDialog();

            sfd.Filter        = "Excel (*.xlsx)|*.xlsx";
            sfd.FileName      = OutFileNameTextBox.Text + ".xlsx";
            sfd.Title         = "Guardar como archivo de excel";
            sfd.DefaultExt    = ".xlsx";
            sfd.ValidateNames = true;
            if (sfd.ShowDialog() == DialogResult.OK)
            {
                Microsoft.Office.Interop.Excel._Application app       = new Microsoft.Office.Interop.Excel.Application();
                Microsoft.Office.Interop.Excel._Workbook    workbook  = app.Workbooks.Add(Type.Missing);
                Microsoft.Office.Interop.Excel._Worksheet   worksheet = null;
                try
                {
                    app.Visible = false;
                    worksheet   = workbook.Sheets[1];
                    worksheet   = workbook.ActiveSheet;
                    worksheet.Columns.AutoFit();
                    for (int i = 0; i < XMLDataGridView.ColumnCount; i++)
                    {
                        if (XMLDataGridView.Columns[i].Visible == true)
                        {
                            worksheet.Cells[1, i + 1] = XMLDataGridView.Columns[i].HeaderText;
                        }
                    }
                    for (int i = 0; i < XMLDataGridView.RowCount; i++)
                    {
                        for (int j = 0; j < XMLDataGridView.ColumnCount; j++)
                        {
                            if (XMLDataGridView.Columns[j].Visible == true)
                            {
                                if (XMLDataGridView[j, i].Value != null || XMLDataGridView[j, i].Value.ToString() != "-")
                                {
                                    worksheet.Cells[i + 2, j + 1] = XMLDataGridView[j, i].Value.ToString();
                                }
                                else
                                {
                                    worksheet.Cells[i + 2, j + 1] = "";
                                }
                            }
                        }
                        ExportProgressBar.PerformStep();
                    }
                    MessageBox.Show("El archivo fue exportado con éxito.", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    if (MessageBox.Show("¿Deseas abrir el archivo generado?", "Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        workbook.SaveAs(sfd.FileName);
                        workbook.Saved = true;
                        app.Visible    = true;
                    }
                    else
                    {
                        workbook.SaveAs(sfd.FileName);
                        workbook.Saved = true;
                        workbook.Close(true, sfd.FileName);
                    }
                }
                catch (Exception e)
                {
                    workbook.Close(false);
                    MessageBox.Show(e.Message);
                }
            }
        }
Ejemplo n.º 5
0
        private void ExportGridToCSV() //Exporta el grid a un csv
        {
            SaveFileDialog sfd = new SaveFileDialog();

            sfd.Filter        = "CSV (*.csv)|*.csv";              //Filtro de archivos
            sfd.FileName      = OutFileNameTextBox.Text + ".csv"; //Carga el nombre que se asignó en el textbox
            sfd.Title         = "Guardar como archivo csv";       //Texto de la ventana
            sfd.DefaultExt    = ".csv";                           //Extensión por defecto
            sfd.ValidateNames = true;                             //Valida el nombre del archivo
            bool fileError = false;

            if (sfd.ShowDialog() == DialogResult.OK)
            {
                if (File.Exists(sfd.FileName))
                {
                    try
                    {
                        File.Delete(sfd.FileName); //Elimina el archivo existente
                    }
                    catch (IOException ex)
                    {
                        fileError = true;
                        MessageBox.Show("No fue posible eliminar el archivo anterior. " + ex.Message);
                    }
                }
                if (!fileError) //Si no hay problemas con sobreescribir el archivo
                {
                    try
                    {
                        string[] outputCsv = new string[XMLDataGridView.Rows.Count + 1];
                        for (int i = 0; i < XMLDataGridView.ColumnCount; i++) //For para guardar el nombre de las columnas en la primer línea del archivo
                        {
                            if (XMLDataGridView.Columns[i].Visible == true)   //Sólo si la columna es visible
                            {
                                outputCsv[0] += XMLDataGridView.Columns[i].HeaderText.ToString().Replace(',', ';') + ",";
                            }
                        }
                        for (int i = 0; i < XMLDataGridView.RowCount; i++) //For para guardar fila por fila
                        {
                            bool colIsVisible = false;                     //Auxiliar para saber si la columna es visible
                            for (int j = 0; j < XMLDataGridView.ColumnCount; j++)
                            {
                                if (XMLDataGridView.Columns[j].Visible == true)
                                {
                                    outputCsv[i + 1] += XMLDataGridView[j, i].Value.ToString().Replace(',', ';') + ",";
                                }
                            }
                            if (colIsVisible)
                            {
                                outputCsv[i + 1] += "\r";
                            }
                            ExportProgressBar.PerformStep();
                        }
                        File.WriteAllLines(sfd.FileName, outputCsv, Encoding.UTF8);
                        MessageBox.Show("Se guardó el archivo con éxito", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Error :" + ex.Message);
                    }
                }
            }
        }