NPOI Excelテーブル、Wordドキュメントの読み書き

5047 ワード

NPOIはPOIから移植された.NETバージョン、Word、Excelの読み書き操作を専門とするオープンソースプロジェクト
では、私たちのC#で読み書きをする方法を試してみましょう.私が今使っているOfficeバージョンは2016です.
私たちはまずNugetを通じてNPOIを私たちのプロジェクトに導入します.
1、Excelテーブルの読み込み
using(FileStream fs=new FileStream(@"C:\Users\BIDIANQING\Desktop\1.xlsx", FileMode.Open,FileAccess.Read))
            {
                XSSFWorkbook book = new XSSFWorkbook(fs);
                ISheet sheet= book.GetSheetAt(0);  //book.NumberOfSheets;
                string sheetName= sheet.SheetName;
                int lastRowNum = sheet.LastRowNum;
                
                for (int i = 0; i <= lastRowNum; i++)
                {
                    string str = string.Empty;
                    IRow row= sheet.GetRow(i);
                    int lastCellNum = row.LastCellNum;
                    for (int j = 0; j < lastCellNum; j++)
                    {
                        ICell cell= row.GetCell(j);
                        CellType cellType= cell.CellType;
                        if (cellType == CellType.Numeric)
                        {
                            str += cell.NumericCellValue.ToString()+"|";
                        }
                        else if (cellType == CellType.String)
                        {
                            str += cell.StringCellValue+"|";
                        }
                    }
                    Console.WriteLine(str);
                }
                
            }

 
2、Excel表にデータを書き込む
List<Person> list = new List<Person>();
            list.Add(new Person() { Id = 1, Name = "  " });
            list.Add(new Person() { Id = 2, Name = "  " });
            list.Add(new Person() { Id = 3, Name = "  " });
            list.Add(new Person() { Id = 4, Name = "  " });

        string desk = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);         string guid = Guid.NewGuid().ToString();
using (FileStream fs = new FileStream(string.Format("{0}\\{1}.xlsx",desk,guid), FileMode.Create, FileAccess.Write))
            {
                XSSFWorkbook book = new XSSFWorkbook();
                ISheet sheet= book.CreateSheet("person");
                int n=0;
                foreach (var item in list)
                {
                    IRow row= sheet.CreateRow(n);
                    row.CreateCell(0, CellType.Numeric).SetCellValue(item.Id);
                    row.CreateCell(1, CellType.String).SetCellValue(item.Name);
                    n++;
                }
                book.Write(fs);
            }
            Console.WriteLine("OK");
            Console.ReadKey();

 
3、Wordドキュメントを読み込む
 using(FileStream fs=new FileStream(@"C:\Users\BIDIANQING\Desktop\1.docx", FileMode.Open,FileAccess.Read))
            {
                XWPFDocument doc = new XWPFDocument(fs);
                //var package= doc.Package;
                var paragraphs= doc.Paragraphs;
                foreach (var item in paragraphs)
                {
                    Console.WriteLine(item.ParagraphText);
                }
            }
            Console.ReadKey();

 
4、Wordドキュメントにデータを書き込む