C# WPF 获取与编译Excel内容,通过NPOI组件

借用NPOI.Excel组件获取与编辑指定Excel内容

  • 获取内容
  • 编辑内容

获取内容

        private void ReadExcel()
        {
            string strReadFilePath = string.Empty;
            Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
            dlg.Filter = "All File|*.*|Excel documents|*.xlsx|Excel(97 - 2003)documents|*.xls"; 
            Nullable<bool> result = dlg.ShowDialog();
            if (result == true)
            {
                strReadFilePath = dlg.FileName;
            }
            else
                return;
            System.IO.FileStream fs = new System.IO.FileStream(strReadFilePath, System.IO.FileMode.Open,System.IO.FileAccess.Read);
            IWorkbook workbook = WorkbookFactory.Create(fs);
            //获取一共多少张表
            int nSheets = workbook.NumberOfSheets;
            for (int i = 0; i < nSheets; i++)
            {
                //获取表格名字
                string strSheetName = workbook.GetSheetName(i);
                if (i != 0)
                {
                    //1.读取Excel表格中的第 i 张Sheet表
                    ISheet sheet = workbook.GetSheetAt(i);
                    //获取一共多少行
                    int nRowsCount = sheet.LastRowNum + 1;
                    string strAim = "0000";
                    for (int k = 0; k < nRowsCount; k++)
                    {
                        // 第I行的所有内容
                        IRow row = sheet.GetRow(k);
                        //第I行 第0列的内容
                        ICell cell = row.GetCell(0);
                        strAim += string.Format(",{0}", cell.ToString());
                    }                
                }
            }
        }

编辑内容

        private void WriteExcel()
        {
            Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
            dlg.Filter = "Excel documents|*.xlsx|Excel(97 - 2003)documents|*.xls";
            bool? result = dlg.ShowDialog();
            if (result == true)
                strWriteFilePath = dlg.FileName;
            else
                return;

            System.IO.FileStream fs = new System.IO.FileStream(strWriteFilePath, System.IO.FileMode.Create);

            IWorkbook workbook;
            if (strWriteFilePath.Contains(".xls"))
                workbook = new NPOI.HSSF.UserModel.HSSFWorkbook();
            else if (strWriteFilePath.Contains(".xlsx"))
                workbook = new NPOI.XSSF.UserModel.XSSFWorkbook();
            else
                return;

            int nRow = 5;
            int nCell = 30;

            //新建第一张表
            ISheet sheet = workbook.CreateSheet();
            //新建第 nRow 行数据
            IRow row = sheet.CreateRow(nRow);
            //向第 nRow 行 第 nCell 列 添加数据“序号” 
            row.CreateCell(nCell).SetCellValue("序号");
            //写入表格
            workbook.Write(fs);
            //关闭表格 
            fs.Close();
        }

你可能感兴趣的:(C#,c#,excel)