Explication détaillée de l'exemple de code pour C# pour créer des fichiers Excel et exporter des données vers des fichiers Excel (image)

黄舟
Libérer: 2017-03-13 17:47:16
original
2288 Les gens l'ont consulté

Matériaux des outils :

Windows 7, Visual Studio 2010, Microsoft Office 2007

Créer une solution

Menu》Nouveau》Projet》Application Windows Forms :


Ajoutez des composants associés :

Ajoutez deux DataGridView, une TextBox et deux boutons, comme indiqué ci-dessous :


Ajouter une ressource Excel :

C#Créer un fichier Excel Ici, un fichier Excel pré-créé est effectivement extrait de la ressource. L'extraction du fichier est réussie. Enfin, utilisez la méthode OleDb pour vous connecter à Excel et écrire des données dans le fichier Excel.

Créez d'abord un nouveau fichier Excel dans le dossier et définissez les noms de colonnes dans la première ligne de la feuille 1 :


Double -cliquez sur le fichier « Resources.resx » pour ouvrir la vue du fichier de ressources :


Ajoutez un fichier existant et sélectionnez le fichier Excel que vous venez de créer


Extraire le fichier Excel de la ressource

            string excelPath = AppDomain.CurrentDomain.BaseDirectory + "Excel" + DateTime.Now.Ticks + ".xlsx";
            if (System.IO.File.Exists(excelPath))
            {
                textBox1.Text += ("文件已经存在!");
                return;
            }

            try
            {
                //从资源中提取Excel文件
                System.IO.FileStream fs = new System.IO.FileStream(excelPath, FileMode.OpenOrCreate);
                fs.SetLength(0);
                fs.Write(Properties.Resources.Excel, 0, Properties.Resources.Excel.Length);
                fs.Close();
                fs.Dispose();
                textBox1.Text = "提取Excel文件成功!" + "\r\n";
            }
            catch (System.Exception ex)
            {
                excelPath = string.Empty;
                textBox1.Text += ("提取Excel文件失败:" + ex.Message);
                textBox1.Text += ("\r\n");
                Application.DoEvents();
                return;
            }
Copier après la connexion

Définir la chaîne de connexion

//定义OleDB连接字符串
            string strConn = "Provider=Microsoft.Ace.OleDb.12.0;Persist Security Info=False;" + "data source=" + @excelPath + ";
            Extended Properties='Excel 12.0; HDR=yes; IMEX=10'";
            OleDbConnection conn = new OleDbConnection();
            conn.ConnectionString = strConn;
Copier après la connexion

Remarque : La valeur de IMEX dans le la chaîne de connexion est 10. Si elle est 1 ou 2, l'erreur " l'opération doit utiliser une requête actualisable " sera signalée lors de l'exécution de l'instruction Insert Into.

Affichez les informations de tous les tableaux du fichier Excel dans dataGridView1

                DataTable oleDt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                dataGridView1.DataSource = oleDt;
                dataGridView1.Show();
Copier après la connexion

Insérez plusieurs éléments de données dans le tableau "Sheet1". Lorsque vous accédez au tableau Excel, vous devez l'ajouter. après le nom de la table. Symbole "$", l'instruction Insert n'a pas besoin de spécifier le nom de la colonne

                OleDbCommand cmd = null;
                try
                {
                    //向"Sheet1"表中插入几条数据,访问Excel的表的时候需要在表名后添加"$"符号,Insert语句可以不指定列名
                    cmd = new OleDbCommand("Insert Into [Sheet1$] Values('abc', 'bac', '0', '123456', 'test','测试','aa')", conn);//(A,B,C,D,E,F,G) 
                    cmd.ExecuteNonQuery();
                    cmd.ExecuteNonQuery();
                    cmd.ExecuteNonQuery();
                    cmd.ExecuteNonQuery();
                    cmd.ExecuteNonQuery();
                }
                catch (System.Exception ex)
                {
                    textBox1.Text += ("插入数据失败:" + ex.Message);
                    textBox1.Text += ("\r\n");
                }
Copier après la connexion

pour afficher le contenu de la table "Sheet1" dans dataGridView2. besoin d'ajouter le symbole "$" après le nom de la table

                cmd = new OleDbCommand("Select * From [Sheet1$]", conn);
                OleDbDataAdapter adp = new OleDbDataAdapter(cmd);
                DataSet ds = new DataSet();
                adp.Fill(ds);
                dataGridView2.DataSource = ds.Tables[0];
Copier après la connexion

Parcourir le contenu du schéma

                DataTable dt = conn.GetSchema();
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    textBox1.Text += dt.Columns[i].Caption;
                    if (i + 1 < dt.Columns.Count)
                    {
                        textBox1.Text += ",";
                    }
                }

                for (int j = 0; j < dt.Rows.Count; j++)
                {
                    for (int i = 0; i < dt.Columns.Count; i++)
                    {
                        if (dt.Rows[j][dt.Columns[i]] != null)
                        {
                            textBox1.Text += dt.Rows[j][dt.Columns[i]].ToString();
                        }
                        else
                        {
                            textBox1.Text += "null";
                        }

                        if (i + 1 < dt.Columns.Count)
                        {
                            textBox1.Text += ",";
                        }
                    }
                    textBox1.Text += ("\r\n");
                }
Copier après la connexion

Fermer la connexion de données Excel

                if (conn.State != ConnectionState.Closed)
                {
                    try
                    {
                        conn.Close();
                    }
                    catch (System.Exception ex)
                    {
                        textBox1.Text += ("关闭Excel数据连接:" + ex.Message);
                        textBox1.Text += ("\r\n");
                    }
                }
Copier après la connexion

Ouvrez le répertoire des fichiers

System.Diagnostics.Process.Start("explorer.exe", AppDomain.CurrentDomain.BaseDirectory);
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!