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,如需轉載請自行聯系原作者