Heim  >  Artikel  >  Backend-Entwicklung  >  C#_Rufen Sie eine gekapselte Klasse auf, um die Funktion zum Exportieren von Excel-Tabellen zu implementieren

C#_Rufen Sie eine gekapselte Klasse auf, um die Funktion zum Exportieren von Excel-Tabellen zu implementieren

php是最好的语言
php是最好的语言Original
2018-08-03 11:29:522423Durchsuche

Vorwort

In den meisten Formularen gibt es eine Funktion zum Exportieren von Excel-Tabellen. Wenn Sie eine Klasse kapseln, ist der direkte Aufruf dieser Klasse bei der Verwendung nicht möglich Bequemer? , was auch die Duplizierung von Code reduziert, warum nicht?

Vorgang

Fügen Sie zunächst eine Referenz hinzu, wählen Sie die Microsoft Office 16.0-Objektbibliothek und die Microsoft Excel 16.0-Objektbibliothek in com aus.

C#_Rufen Sie eine gekapselte Klasse auf, um die Funktion zum Exportieren von Excel-Tabellen zu implementieren

Namespace hinzufügen:

using Microsoft.Office.Interop.Excel;//导出Excel
using Microsoft.Office.Core;
using System.Data.OleDb;
using System.Windows.Forms;

Erstellen Sie eine neue Klasse und nennen Sie sie „AusgabeExcel“. Der Code lautet wie folgt:

public  class outputExcel
    {
        //导出excel
        public void RExcel(string name, DataGridView dgv)
        {
            //总可见行列数
            int rowCount = dgv.Rows.GetRowCount(DataGridViewElementStates.Visible);
            int colCount = dgv.Columns.GetColumnCount(DataGridViewElementStates.Visible);

            //如果没有数据
            if (dgv.Rows.Count == 0 || rowCount == 0)
            {
                MessageBox.Show("表中没有数据", "提示");
            }
            else
            {
                //创建文件的路径
                SaveFileDialog save = new SaveFileDialog();
                save.Filter = "excel files(*.xlsx)|*.xlsx";
                save.Title = "请选择要导出数据的位置";
                save.FileName = name + DateTime.Now.ToLongDateString();

                if (save.ShowDialog() == DialogResult.OK)
                {
                    string fileName = save.FileName;

                    //创建excel对象
                    Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
                    if (excel == null)
                    {
                        MessageBox.Show("Excel无法启动", "提示");
                        return;
                    }

                    //创建工作薄
                    Microsoft.Office.Interop.Excel.Workbook excelBook = excel.Workbooks.Add(true);
                    Microsoft.Office.Interop.Excel.Worksheet excelSheet = (Microsoft.Office.Interop.Excel.Worksheet)excelBook.Worksheets[1];

                    //生成字段名
                    int k = 0;
                    for (int i = 0; i < dgv.ColumnCount; i++)
                    {
                        if (dgv.Columns[i].Visible)//不导出隐藏列
                        {
                            excel.Cells[1, k + 1] = dgv.Columns[i].HeaderText;
                            k++;
                        }
                    }

                    //填充数据
                    for (int i = 0; i < dgv.RowCount; i++)
                    {
                        k = 0;
                        for (int j = 0; j < dgv.ColumnCount; j++)
                        {
                            if (dgv.Columns[j].Visible)//不导出隐藏的列
                            {
                                if (dgv[j, i].ValueType == typeof(string))
                                {
                                    excel.Cells[i + 2, k + 1] = "" + dgv[j, i].Value.ToString();
                                }
                                else
                                {
                                    excel.Cells[i + 2, k + 1] = dgv[j, i].Value.ToString();
                                }
                            }
                            k++;
                        }
                    }

                    try
                    {
                        excelBook.Saved = true;
                        excelBook.SaveCopyAs(fileName);
                        MessageBox.Show("导出成功!");
                    }
                    catch
                    {
                        MessageBox.Show("导出文件失败,文件可能正在使用中", "提示");
                    }
                }
            }
        }


    }

Wenn das Formular Um diese Funktion zu verwenden, müssen Sie den folgenden Code schreiben:

private void btnoutExcel_Click(object sender, EventArgs e)
        {
            outputExcel form1 = new outputExcel();
            form1.RExcel("", dataGridView1);

        }

Verwandte Artikel:

[c#-Tutorial] C#-Datentyp

Multithread-Paket für MySQL Connector C/C++

Das obige ist der detaillierte Inhalt vonC#_Rufen Sie eine gekapselte Klasse auf, um die Funktion zum Exportieren von Excel-Tabellen zu implementieren. 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