使用NPOI解析excel内容导入postgres数据库

时间:2021-04-11 22:49:10

一、使用工具NPOI

1.下载链接:点击打开链接

2.引用dosnet4中的dll,在程序中

using NPOI.SS.UserModel

using NPOI.XSSF.UserModel//这是2007以后版本的office需要引用的
3.使用wpf程序测试excel解析。


前台xmal:

<Grid>
        <Button Content="读取XLS文件" Height="23" HorizontalAlignment="Left" Margin="12,12,0,0" Name="btnInstall" VerticalAlignment="Top" Width="75" Click="btnInstall_Click" />
        <TextBlock Height="23" HorizontalAlignment="Left" Margin="174,12,0,0" Name="lblLog" Text="" VerticalAlignment="Top" Width="317" />
    </Grid>

后台xmal.cs

   

StringBuilder sbr = new StringBuilder();//字符串操作的类
            using (FileStream fs = File.OpenRead(@"c:/myxls.xls")) //打开myxls.xls文件
            {
                XSSFWorkbook wk = new XSSFWorkbook(fs);//把xls文件中数据写入wk中
                for (int i = 0; i < 1; i++)//NumberOfSheets是myxls.xls中sheet表数wk.NumberOfSheets
                {
                    ISheet sheet = wk.GetSheetAt(i);//读取当前sheet表的数据
                    for (int j = 1; j <= sheet.LastRowNum; j++)//LastRowNum是当前表的行数
                    {
                        IRow row = sheet.GetRow(j);//读取当前行的数据
                        if (row != null)
                        {
                            //取各列
                            for (int n = 0; n <= row.LastCellNum; n++)
                            {
                                ICell cell = row.GetCell(n);//d列的当前cell
                                if (cell != null)
                                {
                                   sbr.Append(cell.ToString());//将获取的表格数据转换为字符串类型
                                }
                              if (n == row.LastCellNum)
                              {
                               lblLog.Text = "数据读取成功"; 
                              }
                            }
                        }
                       
                    }
                    
                }
            }

4.对读取的内容进行字符串解析

string[] a=null;
a=cellstring.Split('\n');
//或者 cellstring.Split(new char[2]{'\r','\n'})
5.建数据库表结构,生成相关Model
6.写接口和insert方法 

7.调用business接口,最后调整下生成数据库的结构