예제 #1
0
파일: ExcelService.cs 프로젝트: ppm2k2/IDA
        private void AppendRows(DataTable sourceDataTable, ExcelWorksheet worksheet)
        {
            const int FIRST_ROW = 2;

            for (int row = FIRST_ROW; row <= worksheet.Dimension.End.Row; row++)
            {
                ExcelRangeBase sheetRow = worksheet.Cells[row, 1, row, worksheet.Dimension.End.Column];
                DataRow        dataRow  = sourceDataTable.NewRow();
                foreach (ExcelRangeBase cell in sheetRow)
                {
                    DataColumn column = sourceDataTable.Columns[cell.Start.Column - 1];

                    try
                    {
                        if (String.IsNullOrEmpty(cell.Text))
                        {
                            dataRow[cell.Start.Column - 1] = DBNull.Value;
                        }
                        else if (column.DataType == typeof(DateTime))
                        {
                            dataRow[cell.Start.Column - 1] = DataTypeParser.GetAsDateTime(cell.Text);
                        }
                        else
                        {
                            dataRow[cell.Start.Column - 1] = cell.Text;
                        }
                    }
                    catch
                    {
                        Logger.LogActivity("{0} [{1}]: could not add {2}", column.ColumnName, column.DataType, cell.Text);
                    }
                }
                sourceDataTable.Rows.Add(dataRow);
            }
        }