天天看點

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中最後一列的行号");//擷取目前行總共有多少列

            }

        /// 寫入Excel

        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("建立成功");

           }   

      }

}

本文轉自蓬萊仙羽51CTO部落格,原文連結:http://blog.51cto.com/dingxiaowei/1366617,如需轉載請自行聯系原作者