예제 #1
0
파일: write.cs 프로젝트: Fun33/code
        private HSSF.UserModel.HSSFWorkbook V1()
        {
            HSSF.UserModel.HSSFWorkbook wb    = new HSSF.UserModel.HSSFWorkbook();
            SS.UserModel.ISheet         sheet = wb.CreateSheet("Sheet1");
            SS.UserModel.IRow           row   = sheet.CreateRow(0);
            row.CreateCell(0);
            row.CreateCell(1);
            row.Cells[0].SetCellValue("t");
            row.Cells[1].SetCellValue("p");
            //row.CreateCell(0).SetCellValue("t");也可以這樣寫

            row = sheet.CreateRow(1);
            row.CreateCell(0);
            row.CreateCell(1);
            row.Cells[0].SetCellValue("1");
            row.Cells[1].SetCellValue("0");
            //不用再add回sheet.

            row = sheet.CreateRow(2);
            row.CreateCell(0);
            row.CreateCell(1);
            row.Cells[0].SetCellValue("b");
            row.Cells[1].SetCellValue("w");
            //不用再add回sheet.

            return(wb);
        }
예제 #2
0
파일: NPOI.cs 프로젝트: Fun33/code
        private System.Data.DataTable ReadSheet(SS.UserModel.ISheet sheet)
        {
            //IRow row = sheet.GetRow(i);//get row
            DataTable oDT = new DataTable();

            //由第一列取標題做為欄位名稱
            SS.UserModel.IRow headerRow = sheet.GetRow(0); //get head
            int cellCount = headerRow.LastCellNum;         //get last col

            for (int i = headerRow.FirstCellNum; i < cellCount; i++)
            {
                //以欄位文字為名新增欄位,此處全視為字串型別以求簡化
                oDT.Columns.Add(
                    new DataColumn(headerRow.GetCell(i).StringCellValue));
            }

            //略過第零列(標題列),一直處理至最後一列
            for (int i = (sheet.FirstRowNum + 1); i <= sheet.LastRowNum; i++)
            {
                SS.UserModel.IRow row = sheet.GetRow(i);//get row
                if (row == null)
                {
                    continue;
                }
                DataRow dataRow = oDT.NewRow();
                //依先前取得的欄位數逐一設定欄位內容
                for (int j = row.FirstCellNum; j < cellCount; j++)
                {
                    if (row.GetCell(j) != null)
                    {
                        //如要針對不同型別做個別處理,可善用.CellType判斷型別
                        //再用.StringCellValue, .DateCellValue, .NumericCellValue...取值
                        //此處只簡單轉成字串
                        dataRow[j] = row.GetCell(j).ToString();
                    }
                }
                oDT.Rows.Add(dataRow);
            }
            return(oDT);
        }