zoukankan      html  css  js  c++  java
  • NPOI操作

    C#操作Excel,如果格式是xlsx的就用openXML来操作,如果是xls的就用NPOI来操作

    应该讲第三方组件,单独存在一个lib文件夹中,然后添加引用,这样组件就能随着项目走

    xlsx实际上是一个压缩文件

    using System;
    using System.Windows.Forms;
    using System.IO;
    using NPOI.HSSF.UserModel;


    namespace NPOI测试
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            /// <summary>
            /// 读取EXCEL
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void button1_Click(object sender, EventArgs e)
            {
                using (FileStream stream = new FileStream(@"F:\username.xls", FileMode.Open, FileAccess.Read))
                {
                    HSSFWorkbook workbook = new HSSFWorkbook(stream);
                    MessageBox.Show(workbook.GetSheetName(0),"获取的Sheet名");  //获取sheet名
                    HSSFSheet sheet= workbook.GetSheetAt(0); //获得第一页的sheet表
                    HSSFRow row=sheet.GetRow(0);  //获得第一行
                    HSSFCell cell=row.GetCell(0);  //获得第一列
                    string s=cell.ToString();   //输出显示[0][0]单元的内容
                    MessageBox.Show(s,"获取Excel中[0][0]单元的内容");
                    //MessageBox.Show(cell.StringCellValue);//输出显示字符串单元格的内容

                     MessageBox.Show(sheet.LastRowNum.ToString(),"Excel中最后一行的行号");//获取最后总共有多少行

                     MessageBox.Show(row.LastCellNum.ToString(), "Excel中最后一列的行号");//获取当前行总共有多少列
                }
            }


            /// <summary>
            /// 写入Excel
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void button2_Click(object sender, EventArgs e)
            {
                HSSFWorkbook workbook = new HSSFWorkbook();
                HSSFSheet sheet = workbook.CreateSheet();
                HSSFRow row = sheet.CreateRow(0);//创建第一行
                row.CreateCell(0, HSSFCell.CELL_TYPE_STRING).SetCellValue("Hello");//在第一行第一格写上“Hello”
                row.CreateCell(1, HSSFCell.CELL_TYPE_NUMERIC).SetCellValue(3.14);//写上浮点型的数字
                using (FileStream stream = new FileStream(@"f:\1.xls", FileMode.OpenOrCreate, FileAccess.ReadWrite))
                {
                    workbook.Write(stream);
                }
                MessageBox.Show("创建成功");
               }   

          }
    }

    感谢来访,共同学习!
  • 相关阅读:
    Arch Linux中安装Anaconda
    Windows下使用Diskpart格式化U盘
    Jupyter Notebook的安装
    Docker的脚本安装
    pip无法正常使用卸载并重新安装
    Arch更新时failed to prepare transaction
    Privoxy将Socks代理转化HTTP代理
    Arch Linux下Visual Stdio Code在格式化C代码时报错
    GNOME 3.28 启用桌面图标
    Appium入门(8)__控件定位
  • 原文地址:https://www.cnblogs.com/dingxiaowei/p/3058824.html
Copyright © 2011-2022 走看看