利用EPPLUS读取Excel表格,并写入datagridview和listview中

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using OfficeOpenXml;
using System.IO;

namespace WindowsFormsApplication4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }



        private void Form1_Load(object sender, EventArgs e)
        {
            FileInfo file=new FileInfo ("data.xlsx");
            DataTable dt = null;
            var package = new ExcelPackage(file);
            ExcelWorkbook workbook = package.Workbook;
            if (workbook !=null )
            {
                if (workbook .Worksheets .Count >0)
                {
                    ExcelWorksheet worksheet = workbook.Worksheets.First();
                    dt = WorksheetToTable(worksheet);
                    dataGridView1.DataSource = dt;
                }
            }

            listView1.Columns.Add("序号", 160, HorizontalAlignment.Center);
            listView1.Columns.Add("值", 160, HorizontalAlignment.Center);
            //数据表转数组
            string[] arr = new string[dt.Columns .Count ];
            for (int i = 0; i < dt.Rows .Count ; i++)
            {
                for (int j = 0; j < dt.Columns .Count ; j++)
                {
                    arr[j] = dt.Rows[i][j].ToString();
                }
                listView1.Items.Add(new ListViewItem(arr));               
            }
        }
        private static DataTable WorksheetToTable(ExcelWorksheet worksheet)
        { 
            //获取worksheet的行数
            int rows = worksheet.Dimension.End.Row;
            //获取worksheet的列数
            int cols = worksheet.Dimension.End.Column;
            DataTable dt = new DataTable(worksheet.Name);
            DataRow dr = null;
            DataColumn dc = null;
            dc = dt.Columns.Add("序号");
            dc = dt.Columns.Add("值");
            

            for (int i = 1; i <= rows ; i++)
            {
                if (i>=1)
                {
                    dr = dt.Rows.Add();
                    
                }
                for (int j = 1; j <= cols; j++)
                {
                    try
                    {
                        dr[j-1] = worksheet.Cells[i, j].Value.ToString();
                    }
                    catch (Exception ex)
                    {

                        MessageBox.Show(ex.Message);
                    }                   
                }
            }
            return dt;
        }
    }
}

在这个程序中,注意datatable的数据转换,读取的Excel数据转到datatable,datatable转换为数组。

代码下载链接:https://download.csdn.net/download/yue1453544229/10464609


猜你喜欢

转载自blog.csdn.net/yue1453544229/article/details/80608007