C#读写excel信息到ListView控件

using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;


namespace WindowsFormsApp3
{
    public partial class Form1 : Form
    {
        string sFilePath = "test.xlsx";
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //  Npio_excel npexcel = new Npio_excel();
            //   npexcel.excel_c();

        }
        //读excel文件
        private void button1_Click(object sender, EventArgs e)
        {
            //Readexcel re = new Readexcel();
            // re.read();

            //  Console.WriteLine("Hello, World!");
            var fileName = "test.xlsx";
            string allcell;
            if (!File.Exists(fileName))
            {
                return;
            }
            FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
            IWorkbook workbook = WorkbookFactory.Create(fs);
            //尝试获取第一个sheet
            var sheet = workbook.GetSheetAt(0);
            //判断是否获取到 sheet
            if (sheet != null)
            {
                //获取第一行
                int a = sheet.PhysicalNumberOfRows;// 表的总行数
                                                   //  Console.WriteLine(mmm);
                                                   //   var a = sheet.LastRowNum;  //也是表的总行数,要加1
                for (int j = 0; j < a; j++)
                {
                    var row = sheet.GetRow(j);
                    for (int i = 0; i < row.Count(); i++)
                    {
                        ListViewItem listviewItem = new ListViewItem();
                        //   string s = array[i].ToString();
                        //这里没有对格式是否符合要求进行判断,如果内容被修改成其他格式则会出异常的
                        // string[] arr = s.Split(',');
                        listviewItem.Text = (j + 1).ToString();
                        //  listviewItem.Text = arr[0];
                        listviewItem.SubItems.Add(row.GetCell(i++).ToString());
                        listviewItem.SubItems.Add(row.GetCell(i++).ToString());
                        listviewItem.SubItems.Add(row.GetCell(i++).ToString());
                        listviewItem.SubItems.Add(row.GetCell(i++).ToString());
                        listView1.Items.Add(listviewItem);

                        // allcell =allcell+ row.GetCell(i).ToString();
                        //  MessageBox.Show(allcell);
                        //  Console.WriteLine(allcell);
                        //输出
                        //  Console.Write($"第{j + 1}行数据:第 {i + 1} 个数据值:{row.GetCell(i).ToString()}");
                    }
                }
            }
        }
        //向listview 加内容
        private void button2_Click(object sender, EventArgs e)
        {
            //if (txtMsg.Text.Trim().Replace(" ", "") == "")
            //{
            //    MessageBox.Show("备注不能为空值");
            //    return;
            //}
            int i = listView1.Items.Count + 1;
            ListViewItem listItem = listView1.Items.Add(i.ToString());    //((lstList.Items.Count + 1).ToString().Trim());
            listItem.SubItems.Add(textBox1.Text);                                                                              //  listItem.SubItems.Add(dtboxTime.Value.ToString("HH:mm:ss"));
            listItem.SubItems.Add(textBox2.Text);
            listItem.SubItems.Add(textBox3.Text);
            listItem.SubItems.Add(textBox4.Text);
        }
        //把listview 写入到excel
        private void button3_Click(object sender, EventArgs e)
        {
            IWorkbook workbook = new XSSFWorkbook();
            ISheet worksheet = workbook.CreateSheet("工作表");

            for (int j = 0; j < listView1.Items.Count; j++)
            {
                IRow row = worksheet.CreateRow(j);//创建行
                for (int i = 0; i < listView1.Items[j].SubItems.Count; i++)
                {
                    row.CreateCell(i).SetCellValue(listView1.Items[j].SubItems[i].Text);
                    //row.CreateCell(i).SetCellValue((j + 1).ToString() + "行" + (i + 1).ToString() + "列" + "的值");
                }
            }
            //第二行代码和下面两行代码效果相同
            //ICell cell = row.CreateCell(0);
            //cell.SetCellValue("行1列1的单元格的值");

            FileStream file = new FileStream(sFilePath, FileMode.Create);
            workbook.Write(file);
            file.Close();
        }
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值