前言,想利用C#将excel文件导入到winForm程序中来,通过各方面的尝试,终于找到一个比较简洁的方式,前来分享~


1.导入引用

wKioL1MidGjCkEWiAADZ9o3HwIU950.jpg

2.导入命名空间

using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;


3.主要代码

在这里,我将excel表中第一列的数据,全部导入到textBox控件上,如果是想导入datagridview控件或者别的控件上,即更改方法的类型就ok。

private void button1_Click(object sender, EventArgs e)
{
    openFileDialog1.ShowDialog();
    TextBox tb = ExcelInput(openFileDialog1.FileName);
    textBox1.Text = tb.Text.TrimStart(',').TrimEnd(',');
}
public static TextBox ExcelInput(string FilePath)
{    
    TextBox tb = new TextBox();
    //根据路径通过已存在的excel来创建HSSFWorkbook,即整个excel文档
    HSSFWorkbook workbook = new HSSFWorkbook(File.Open(FilePath, FileMode.Open));
    //获取excel的第一个sheet
    HSSFSheet sheet =(HSSFSheet)workbook.GetSheetAt(0);
    //获取Excel的最大行数和列数
    int rowsCount = sheet.PhysicalNumberOfRows;
    int colsCount = sheet.GetRow(0).PhysicalNumberOfCells;
    //第一行为标题行,即从第二行开始循环
    for (int x = 1; x < rowsCount; x++)
    {
        //for (int y = 0; y < colsCount; y++) //输出的是所有列的数据
        for (int y = 0; y < 1; y++) //在这里 只要第一列的数据
        {
            tb.Text += sheet.GetRow(x).GetCell(y).ToString() + ',';                   
        }               
    }
    sheet = null;
    workbook = null;
    return tb;
}