zoukankan      html  css  js  c++  java
  • C# Excel

    1.C#通过NPOI对Excel操作:

    using NPOI.HSSF.UserModel;
    using NPOI.SS.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 通过NPOI进行对Excel操作
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                //
            }
            // 写Excel
            private void button1_Click(object sender, EventArgs e)
            {
                // 创建list集合
                List<Person> list1 = new List<Person>()
                {
                    new Person() {name="n",age=12,email="294623785@qq.com" },
                    new Person() {name="a",age=11,email="29462378@qq.com" },
                    new Person() {name="m",age=10,email="2946237@qq.com" },
                    new Person() {name="e",age=9,email="2946237@qq.com" },
                    new Person() {name="j",age=8,email="294623@qq.com" },
                    new Person() {name="r",age=7,email="29462@qq.com" }
                };
                // 创建工作薄对象
                IWorkbook wkbook = new HSSFWorkbook();
                // 在该工作薄中创建表对象
                ISheet sheet = wkbook.CreateSheet("List for Person");
                // 想对象中插入行和列的信息
                for(int i = 0; i < list1.Count; i++)
                {
                    // 创建行信息
                    IRow row = sheet.CreateRow(i);  // 创建第几行
                    // 创建列(填写列信息)
                    row.CreateCell(0).SetCellValue(list1[i].name);  // 给第0列设置信息
                    row.CreateCell(1).SetCellValue(list1[i].age);  // 给第1列设置信息
                    row.CreateCell(2).SetCellValue(list1[i].email);  // 给第2列设置信息
                    // 上面这三行等价于下面这种写法
                    /*
                    ICell cell = row.CreateCell(0);
                    cell.SetCellValue(list1[i].name);
                    */
                }
                // 写到Excel
                using(FileStream fswrite = File.OpenWrite("list.xls"))
                {
                    wkbook.Write(fswrite);  //工作薄写入的对象是文件流
                }
                MessageBox.Show("写入成功!");
            }
            // 读Excel
            private void button2_Click(object sender, EventArgs e)
            {
                // 获取Excel中的内容
                using(FileStream fsread = File.OpenRead("list.xls"))
                {
                    // 将读取到的文件流的内容放到工作薄中
                    IWorkbook wkbook = new HSSFWorkbook(fsread);
                    // 获取每个工作表Sheet
                    for(int i = 0; i < wkbook.NumberOfSheets; i++)
                    {
                        // 获取每个工作表sheet
                        ISheet sheet = wkbook.GetSheetAt(i);
                        Console.WriteLine("============================================={0}=============================================", sheet.SheetName);  // 打印书工作表的名称
                        // 遍历每个工作表中的行(LastRowNum最后一行的数值)
                        for (int j = 0; j <= sheet.LastRowNum; j++)
                        {
                            // 获取对应行
                            IRow row = sheet.GetRow(j);
                            // 这个LastCellNum不需要等于
                            for (int k = 0; k < row.LastCellNum; k++)
                            {
                                // 获取每个单元格的内容
                                ICell cell = row.GetCell(k);
                                string value = cell.ToString(); // 不区分类型,都以字符串进行输出
                                /*
                                string valueS = cell.StringCellValue;  // 获取string类型
                                bool valueB = cell.BooleanCellValue;  // 获取bool类型
                                // 等等还有其他类型
                                */
                                Console.Write("{0}   |     ", value);
                            }
                            Console.WriteLine();
                        }
                    }
                }
            }
        }
    }
  • 相关阅读:
    左右切换+焦点图
    php中的preg系列函数
    php中的修饰符
    换行符‘ ’和回车符‘ ’
    已经安装php后,再增加扩展模块(不重新编辑php)
    什么是php?以及mysqlnd与libmysqlclient
    cli下的php(并传递参数)
    lnmp安装--php与nginx结合
    FastCgi与PHP-fpm关系[转] 读完本文瞬间明朗了很多
    epoll和select区别
  • 原文地址:https://www.cnblogs.com/namejr/p/11093633.html
Copyright © 2011-2022 走看看