Heim  >  Artikel  >  Backend-Entwicklung  >  Ausführliche Erläuterung des Beispielcodes zum Erstellen von Excel-Dateien und zum Exportieren von Daten in Excel-Dateien in C# (Bild)

Ausführliche Erläuterung des Beispielcodes zum Erstellen von Excel-Dateien und zum Exportieren von Daten in Excel-Dateien in C# (Bild)

黄舟
黄舟Original
2017-03-13 17:47:162293Durchsuche

Werkzeugmaterialien:

Windows 7, Visual Studio 2010, Microsoft Office 2007

Lösung erstellen

Menü》Neu》Projekt》Windows Forms-Anwendung:


Zugehörige Komponenten hinzufügen:

Fügen Sie zwei DataGridView, ein TextBox und zwei Schaltflächen hinzu, wie unten gezeigt:


Excel-Ressource hinzufügen:

C#Erstellen Sie eine Excel-Datei. Hier wird tatsächlich eine vorab erstellte Excel-Datei aus der Ressource extrahiert. Verwenden Sie abschließend die OleDb-Methode, um eine Verbindung zu Excel herzustellen und Daten in die Excel-Datei zu schreiben.

Erstellen Sie zunächst eine neue Excel-Datei im Ordner und legen Sie die Spaltennamen in der ersten Zeile von Sheet1 fest:


Double -Klicken Sie auf die Datei „Resources.resx“, um die Ressourcendateiansicht zu öffnen:


Fügen Sie eine vorhandene Datei hinzu und wählen Sie die gerade erstellte Excel-Datei aus


Extrahieren Sie die Excel-Datei aus der 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;
            }

Definieren Sie die Verbindungszeichenfolge

//定义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;

Hinweis: Der Wert von IMEX in der Verbindungszeichenfolge ist 10. Wenn es 1 oder 2 ist, wird der Fehler „ Vorgang muss eine aktualisierbare Abfrage verwenden“ gemeldet, wenn die Insert Into-Anweisung ausgeführt wird.

Zeigen Sie die Informationen aller Tabellen in der Excel-Datei in dataGridView1 an

                DataTable oleDt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                dataGridView1.DataSource = oleDt;
                dataGridView1.Show();

Fügen Sie mehrere Datenelemente in die Tabelle „Sheet1“ ein. Wenn Sie auf die Excel-Tabelle zugreifen, müssen Sie diese hinzufügen Nach dem Tabellennamen muss die Insert-Anweisung nicht den Spaltennamen

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

angeben, um den Inhalt der Tabelle „Sheet1“ in dataGridView2 anzuzeigen Sie müssen das Symbol „$“ nach dem Tabellennamen hinzufügen.

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

Durchlaufen Sie den Inhalt des Schemas.

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

Schließen Sie die Excel-Datenverbindung.

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

Öffnen Sie das Dateiverzeichnis

System.Diagnostics.Process.Start("explorer.exe", AppDomain.CurrentDomain.BaseDirectory);

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung des Beispielcodes zum Erstellen von Excel-Dateien und zum Exportieren von Daten in Excel-Dateien in C# (Bild). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn