/// <summary>
	/// Gets the Excel data from current spreadsheet
	/// </summary>
	/// <returns>The spreadsheet data table.</returns>
	/// <param name="excelReader">Excel Reader.</param>
	private DataTable GetExcelSheetData(IExcelDataReader excelReader)
	{
		if (excelReader == null)
		{
			Debug.LogError("Excel To Json Converter: Excel Reader is null. Cannot read data");
			return null;
		}
		
		// Ignore sheets which start with ~
		Regex sheetNameRegex = new Regex(@"^~.*$");
		if (sheetNameRegex.IsMatch(excelReader.Name))
		{
			return null;
		}
		
		// Create the table with the spreadsheet name
		DataTable table = new DataTable(excelReader.Name);
		table.Clear();
		
		string value = "";
		bool rowIsEmpty;
		
		// Read the rows and columns
		while (excelReader.Read())
		{
			DataRow row = table.NewRow();
			rowIsEmpty = true;
			
			for (int i = 0; i < excelReader.FieldCount; i++) 
			{
				// If the column is null and this is the first row, skip
				// to next iteration (do not want to include empty columns)
				if (excelReader.IsDBNull(i) && 
				    (excelReader.Depth == 1 || i > table.Columns.Count - 1))
				{
					continue;
				}
				
				value = excelReader.IsDBNull(i) ? "" : excelReader.GetString(i);
				
				// If this is the first row, add the values as columns
				if (excelReader.Depth == 1)
				{
					table.Columns.Add(value);
				}
				else // Otherwise, add as rows
				{
					row[table.Columns[i]] = value;
				}
				
				if (!string.IsNullOrEmpty(value))
				{
					rowIsEmpty = false;
				}
			}
			
			// Add the row to the table if it was not column headers and 
			// the row was not empty
			if (excelReader.Depth != 1 && !rowIsEmpty)
			{
				table.Rows.Add(row);
			}
		}
		
		return table;
	}
Esempio n. 2
0
    public static List <TowerInfo> ReadExcel(string ePath)
    {
        List <TowerInfo> list = new List <TowerInfo>();

        using (FileStream stream = File.Open(excelPath, FileMode.Open, FileAccess.Read, FileShare.Read))
        {
            using (IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream))
            {
                SetReader(excelReader);
                excelReader.Read();
                for (int i = 1; i < excelReader.RowCount; i++)
                {
                    excelReader.Read();
                    TowerInfo info = new TowerInfo();
                    info.towerId     = GetInt(0);
                    info.Name        = GetString(1);
                    info.Introduce   = GetString(2);
                    info.buildCoin   = GetInt(3);
                    info.sellCoin    = GetInt(4);
                    info.damageType  = GetInt(5);
                    info.damageRange = GetFloat(6);
                    info.CD          = GetFloat(7);
                    info.damage      = GetInt(8);
                    info.Range       = GetInt(9);
                    info.bullectPath = GetString(10);
                    info.nextTowerId = GetInt(11);
                    info.path        = GetString(12);
                    info.audio       = GetString(13);
                    info.helpSprite  = GetString(14);
                    list.Add(info);
                }
            }
        }
        return(list);
    }
Esempio n. 3
0
        public IEnumerator <T> GetEnumerator()
        {
            _dataReader.Reset();

            EnsureCorrectSheetSelected();

            EnsureColumnNamesResolved();

            while (_dataReader.Read())
            {
                var instance = Activator.CreateInstance <T>();

                foreach (var propertyMap in _configuration.PropertyMaps.Where(p => !p.Ignored))
                {
                    var valueFromExcel = propertyMap.MapStrategy == ExcelIteratorPropertyMapStrategy.ByName
            ? _dataReader.GetValue(ResolveIndexByName(propertyMap))
            : _dataReader.GetValue(propertyMap.ColumnIndex);

                    propertyMap.Property.SetValue(instance,
                                                  propertyMap.SourceValueConverter.ConvertValue(valueFromExcel));
                }

                yield return(instance);
            }
        }
Esempio n. 4
0
        public void UpdateMakes(IExcelDataReader reader)
        {
            reader.Read();

            while (reader.Read())
            {
                int makeID = 0;
                int.TryParse(reader[0].ToString(), out makeID);
                if (makeID <= 0)
                {
                    continue;
                }

                AutoMake make = AutoMakeService.GetByID(makeID);
                if (make == null)
                {
                    make = new AutoMake()
                    {
                        ID      = makeID,
                        Name    = reader[1].ToString(),
                        Name_ru = reader[2].ToString()
                    };

                    AutoMakeService.Create(make);
                }
                else
                {
                    make.Name    = reader[1].ToString();
                    make.Name_ru = reader[2].ToString();

                    AutoMakeService.Edit(make);
                }
            }
        }
Esempio n. 5
0
        /// <summary>
        /// 获取列名
        /// </summary>
        /// <param name="path"></param>
        /// <param name="FirstRowIsColumnName"></param>
        /// <returns></returns>
        public static string[] GetColumnName(string path, bool FirstRowIsColumnName, int rowNumbeOfColumnNamer)
        {
            var file = new FileInfo(path);

            string[] columnNames = null;
            using (var stream = new FileStream(path, FileMode.Open))
            {
                IExcelDataReader reader = InitReader(path, stream);
                reader.Read();
                columnNames = new string[reader.FieldCount];
                if (FirstRowIsColumnName)
                {
                    for (int i = 1; i < rowNumbeOfColumnNamer; i++)
                    {
                        reader.Read();
                    }
                    for (int i = 0; i < reader.FieldCount; i++)
                    {
                        columnNames[i] = reader.GetString(i);
                    }
                }
                else
                {
                    for (int i = 0; i < reader.FieldCount; i++)
                    {
                        columnNames[i] = string.Format("第" + i + "列");
                    }
                }
            }
            return(columnNames);
        }
Esempio n. 6
0
        public override bool Read()
        {
            if (ReferenceEquals(_reader, null))
            {
                return(false);
            }

            try
            {
                if (!_isFirstRowReaded)
                {
                    var columnIndex = GetOriginalColumnIndex(0);
                    var readResult  = _reader.Read() && _reader[columnIndex] is not null;

#if DEBUG
                    Log.Debug($"Read '{1}' rows with result: '{readResult}'");
#endif

                    return(readResult);
                }

                ReadFieldHeaders();
                _isFirstRowReaded = false;

                return(_reader.Read());
            }
            catch (Exception ex)
            {
                Log.Error(ex, $"Failed to read data from '{Source}'");
                AddValidationError($"Failed to read data: '{ex.Message}'");
                return(false);
            }
        }
Esempio n. 7
0
        private Task <bool> ReadRowSpecificSheet()
        {
            if (!inSpecificSheet)
            {
                if (specificSheetIndex != 0)
                {
                    var currentSheetReaderIndex = 0;
                    do
                    {
                        reader.NextResult();
                        currentSheetReaderIndex++;
                    } while (specificSheetIndex == currentSheetReaderIndex);
                }

                inSpecificSheet = true;
            }
            var found = reader.Read();

            if (!found)
            {
                return(Task.FromResult(false));
            }
            index++;
            Current = new ExcelRow(index, CurrentSheet, reader);
            return(Task.FromResult(true));
        }
Esempio n. 8
0
    public static List <EnemyInfo> ReadExcel(string ePath)
    {
        List <EnemyInfo> list = new List <EnemyInfo>();

        using (FileStream stream = File.Open(excelPath, FileMode.Open, FileAccess.Read, FileShare.Read))
        {
            using (IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream))
            {
                SetReader(excelReader);
                excelReader.Read();
                for (int i = 1; i < excelReader.RowCount; i++)
                {
                    excelReader.Read();
                    EnemyInfo info = new EnemyInfo();
                    info.enemyId    = GetInt(0);
                    info.Name       = GetString(1);
                    info.Introduce  = GetString(2);
                    info.killCoin   = GetInt(3);
                    info.killDO     = GetInt(4);
                    info.life       = GetInt(5);
                    info.speed      = GetInt(6);
                    info.Def        = GetInt(7);
                    info.Mdef       = GetInt(8);
                    info.heart      = GetInt(9);
                    info.path       = GetString(10);
                    info.audio      = GetString(11);
                    info.helpSprite = GetString(12);
                    list.Add(info);
                }
            }
        }
        return(list);
    }
Esempio n. 9
0
        public bool importData()
        {
            string           filePath    = @"C:\Users\Umapathy\Desktop\Book3.xlsx";
            string           DeviceID    = "";
            FileStream       stream      = File.Open(filePath, FileMode.Open, FileAccess.Read);
            IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);

            excelReader.IsFirstRowAsColumnNames = true;
            var MasterAppDataList = new List <MasterAppData>();

            excelReader.Read();
            while (excelReader.Read())
            {
                MasterAppDataList.Add(new MasterAppData
                {
                    AppID      = int.Parse(excelReader.GetString(0)),
                    AppDevice  = excelReader.GetString(1),
                    Author     = excelReader.GetString(3),
                    Title      = excelReader.GetString(4),
                    Review     = excelReader.GetString(5),
                    Version    = excelReader.GetString(7),
                    Rating     = int.Parse(excelReader.GetString(6)),
                    ReviewDate = DateTime.Parse(excelReader.GetString(2))
                });
            }
            DataTable dt = MasterAppDataList.ToDataTable();

            DBManager dbManager = new DBManager();

            return(dbManager.UpdateMasterAppData(dt, DeviceID));
        }
Esempio n. 10
0
        public void Issue_DateFormatButNotDate()
        {
            //we want to make sure that if a cell is formatted as a date but it's contents are not a date then
            //the output is not a date (it was ending up as datetime.min)
            IExcelDataReader excelReader =
                ExcelReaderFactory.CreateOpenXmlReader(Helper.GetTestWorkbook("xTest_Issue_DateFormatButNotDate"));

            excelReader.Read();
            Assert.AreEqual("columna", excelReader.GetValue(0));
            Assert.AreEqual("columnb", excelReader.GetValue(1));
            Assert.AreEqual("columnc", excelReader.GetValue(2));
            Assert.AreEqual("columnd", excelReader.GetValue(3));
            Assert.AreEqual("columne", excelReader.GetValue(4));

            excelReader.Read();
            Assert.AreEqual(1D, excelReader.GetValue(0));
            Assert.AreEqual(2D, excelReader.GetValue(1));
            Assert.AreEqual(3D, excelReader.GetValue(2));
            var value = excelReader.GetValue(3);

            Assert.AreEqual(new DateTime(2013, 12, 10), value);
            Assert.AreEqual("red", excelReader.GetValue(4));

            excelReader.Read();
            Assert.AreEqual("yellow", excelReader.GetValue(4));
            excelReader.Close();
        }
Esempio n. 11
0
    public static List <RoundData> ReadExcel(string ePath)
    {
        List <RoundData> list = new List <RoundData>();

        using (FileStream stream = File.Open(excelPath, FileMode.Open, FileAccess.Read, FileShare.Read))
        {
            using (IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream))
            {
                excelReader.Read();
                for (int i = 1; i < excelReader.RowCount; i++)
                {
                    excelReader.Read();
                    RoundData rdata = new RoundData();
                    rdata.enemyList = new List <int>();
                    rdata.pathList  = new List <Vector3>();
                    rdata.levelID   = int.Parse(excelReader.GetString(0));
                    rdata.index     = int.Parse(excelReader.GetString(1));
                    string[] enemyStrArr = excelReader.GetString(2).Split(',');
                    for (int j = 0; j < enemyStrArr.Length; j++)
                    {
                        rdata.enemyList.Add(int.Parse(enemyStrArr[j]));
                    }
                    string[] pathStrArr = excelReader.GetString(3).Split(',');
                    for (int k = 0; k < pathStrArr.Length; k++)
                    {
                        rdata.pathList.Add(PathPointRecord.instance.pathList[int.Parse(pathStrArr[k])]);
                    }
                    list.Add(rdata);
                }
            }
        }
        return(list);
    }
Esempio n. 12
0
        private void ReadHeaderRow(IExcelDataReader rowReader, ref int skipRows)
        {
            var startingHeaderColumns = GetStartingHeaderColumns();

            for (; skipRows > 0; --skipRows)
            {
                if (!rowReader.Read())
                {
                    return;
                }
            }

            if (!startingHeaderColumns.Any())
            {
                return;
            }

            while (true)
            {
                if (IsHeaderRowMatched(GetFields(rowReader), startingHeaderColumns))
                {
                    break;
                }

                if (!rowReader.Read())
                {
                    return;
                }
            }
        }
Esempio n. 13
0
        public static List <UIPanelInfo> ReadExcel(string ePath)
        {
            List <UIPanelInfo> testDict = new List <UIPanelInfo>();

            using (FileStream stream = File.Open(excelPath, FileMode.Open, FileAccess.Read, FileShare.Read))
            {
                using (IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream))
                {
                    excelReader.Read();
                    //除了第一行的字段名 和最后一行空白
                    for (int i = 1; i < excelReader.RowCount; i++)
                    {
                        excelReader.Read();
                        UIPanelInfo pdata = new UIPanelInfo();
                        //数字类型需要转换
                        pdata.id        = int.Parse(excelReader.GetString(0));
                        pdata.panelName = excelReader.GetString(1);
                        pdata.path      = excelReader.GetString(2);
                        pdata.layer     = excelReader.GetString(3);

                        testDict.Add(pdata);
                    }
                }
            }

            return(testDict);
        }
Esempio n. 14
0
        public void DataReader_NextResult_Test()
        {
            IExcelDataReader r = ExcelReaderFactory.CreateOpenXmlReader(Helper.GetTestWorkbook("xTestMultiSheet"));

            Assert.AreEqual(3, r.ResultsCount);

            var table = new DataTable();

            table.Columns.Add("c1", typeof(int));
            table.Columns.Add("c2", typeof(int));
            table.Columns.Add("c3", typeof(int));
            table.Columns.Add("c4", typeof(int));

            int fieldCount = -1;

            while (r.Read())
            {
                fieldCount = r.FieldCount;
                table.Rows.Add(r.GetInt32(0), r.GetInt32(1), r.GetInt32(2), r.GetInt32(3));
            }

            Assert.AreEqual(12, table.Rows.Count);
            Assert.AreEqual(4, fieldCount);
            Assert.AreEqual(1, table.Rows[11][3]);


            r.NextResult();
            table.Rows.Clear();
            table.TableName = r.Name;

            while (r.Read())
            {
                fieldCount = r.FieldCount;
                table.Rows.Add(r.GetInt32(0), r.GetInt32(1), r.GetInt32(2), r.GetInt32(3));
            }

            Assert.AreEqual(12, table.Rows.Count);
            Assert.AreEqual(4, fieldCount);
            Assert.AreEqual(2, table.Rows[11][3]);


            r.NextResult();
            table.TableName = r.Name;
            table.Rows.Clear();

            while (r.Read())
            {
                fieldCount = r.FieldCount;
                table.Rows.Add(r.GetInt32(0), r.GetInt32(1));
            }

            Assert.AreEqual(5, table.Rows.Count);
            Assert.AreEqual(2, fieldCount);
            Assert.AreEqual(3, table.Rows[4][1]);

            Assert.AreEqual(false, r.NextResult());

            r.Close();
        }
Esempio n. 15
0
 //[FUNCTION - ReadExcelData)
 //Summarizes the proccess of excel data filtering
 private void ReadExcelData()
 {
     excelReader.Read(); //skips first row
     ProcessCourseData();
     RemoveIrevSections();
     SortCourses();
     // WriteDebugFile();
 }
Esempio n. 16
0
 public void TestBlankHeader()
 {
     using (IExcelDataReader excelReader = OpenReader("Test_BlankHeader"))
     {
         excelReader.Read();
         Assert.AreEqual(6, excelReader.FieldCount);
         excelReader.Read();
     }
 }
Esempio n. 17
0
        public List <object[]> ReadSheet(
            int firstRowIndex    = 0,
            int?lastRowIndex     = null,
            int firstColumnIndex = 0,
            int?lastColumnIndex  = null,
            int maxRows          = int.MaxValue
            )
        {
            List <object[]> list = new();

            for (var i = 0; i < firstRowIndex; i++)
            {
                if (!_reader.Read())
                {
                    return(new());
                }
            }

            lastColumnIndex = Math.Min(
                lastColumnIndex ?? int.MaxValue,
                _reader.FieldCount - 1);

            var columnCount = lastColumnIndex.Value - firstColumnIndex + 1;

            if (columnCount < 0)
            {
                columnCount = 0;
            }

            for (var i = firstRowIndex;
                 (!lastRowIndex.HasValue || i <= lastRowIndex.Value) && list.Count < maxRows;
                 i++
                 )
            {
                if (!_reader.Read())
                {
                    break;
                }

                var row = new object[columnCount];
                for (var j = firstColumnIndex;
                     j <= (lastColumnIndex ?? (_reader.FieldCount - 1));
                     j++
                     )
                {
                    if (j < _reader.FieldCount)
                    {
                        row[j - firstColumnIndex] = _reader.GetValue(j);
                    }
                }

                list.Add(row);
            }

            return(list);
        }
Esempio n. 18
0
        private void button1_Click(object sender, EventArgs e)
        {
            const string FilePath = @"C:\mongodb\bin\TrafficStopsSample.xls";
            FileStream   stream   = File.Open(FilePath, FileMode.Open, FileAccess.Read);

            //1. Reading from a binary Excel file ('97-2003 format; *.xls)
            using (IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream))
            {
                //...
                //////2. Reading from a OpenXml Excel file (2007 format; *.xlsx)
                ////IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
                //...
                //////3. DataSet - The result of each spreadsheet will be created in the result.Tables
                ////DataSet result = excelReader.AsDataSet();
                //...
                //4. DataSet - Create column names from first row
                ////excelReader.IsFirstRowAsColumnNames = true;
                ////DataSet result = excelReader.AsDataSet();

                //this.textBox1.Text = string.Format("Rows imported: {0}", result.Tables[0].Rows.Count);

                int i = 0;
                //////5. Data Reader methods
                var stopwatch = new System.Diagnostics.Stopwatch();
                stopwatch.Start();
                excelReader.Read(); //to get past header row
                while (excelReader.Read())
                {
                    var data = new CaryData
                    {
                        Id          = i++,
                        CAD_Call    = excelReader.GetString(0),
                        Call_Type   = excelReader.GetString(1),
                        Address     = excelReader.GetString(2),
                        Dt          = new DateTime(2012, excelReader.GetInt32(5), excelReader.GetInt32(6)),
                        Time        = excelReader.GetString(4),
                        Month       = Int32.Parse(excelReader.GetString(5)),
                        Day         = Int32.Parse(excelReader.GetString(6)),
                        Disposition = excelReader.GetString(7),
                        Streetno    = excelReader.GetString(8),
                        Streetonly  = excelReader.GetString(9),
                        Location    = new[] { excelReader.GetDouble(10), excelReader.GetDouble(11) }
                    };

                    var col = database.GetCollection <CaryData>("trafficstops");
                    col.Save(data);
                }

                stopwatch.Stop();
                this.textBox1.Text = "Done! Operation took " + stopwatch.Elapsed.TotalSeconds + " seconds.";
            }

            //6. Free resources (IExcelDataReader is IDisposable)
            //excelReader.Close();
        }
Esempio n. 19
0
        private List <ListItemModel> parseListExcel(ListImportFileModel file, UserProfile user, UserSelectedContext catalogInfo)
        {
            List <ListItemModel> returnValue = new List <ListItemModel>();

            IExcelDataReader rdr = null;

            if (Path.GetExtension(file.FileName)
                .Equals(BINARY_EXCEL_EXTENSION, StringComparison.InvariantCultureIgnoreCase))
            {
                rdr = ExcelReaderFactory.CreateBinaryReader(file.Stream);
            }
            else
            {
                rdr = ExcelReaderFactory.CreateOpenXmlReader(file.Stream);
            }
            int itemNumberColumn = 0;
            int labelColumn      = -1;

            if (file.IgnoreFirstLine)
            {
                rdr.Read(); // Skip the first line
                for (int i = 0; i < rdr.FieldCount - 1; i++)
                {
                    if (rdr.GetString(i)
                        .Equals("item", StringComparison.CurrentCultureIgnoreCase))
                    {
                        itemNumberColumn = i;
                    }
                    else if (rdr.GetString(i)
                             .Equals("label", StringComparison.CurrentCultureIgnoreCase))
                    {
                        labelColumn = i;
                    }
                }
            }

            int itemPositionIndex = 0;

            while (rdr.Read())
            {
                if (rdr.GetString(itemNumberColumn) != null)
                {
                    returnValue.Add(new ListItemModel {
                        ItemNumber = rdr.GetString(itemNumberColumn)
                                     .PadLeft(6, '0'),
                        Label     = labelColumn == -1 ? string.Empty : rdr.GetString(labelColumn),
                        CatalogId = catalogInfo.BranchId,
                        Position  = ++itemPositionIndex
                    });
                }
            }

            return(returnValue);
        }
Esempio n. 20
0
 public void Test_BlankHeader()
 {
     using (IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(Configuration.GetTestWorkbook("xTest_BlankHeader")))
     {
         excelReader.Read();
         Assert.AreEqual(6, excelReader.FieldCount);
         excelReader.Read();
         for (int i = 0; i < excelReader.FieldCount; i++)
         {
             Console.WriteLine("{0}:{1}", i, excelReader.GetValue(i));
         }
     }
 }
        public void TestGitIssue145()
        {
            using (IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(Configuration.GetTestWorkbook("Test_Git_Issue_145.xls")))
            {
                excelReader.Read();
                excelReader.Read();
                excelReader.Read();

                string value = excelReader.GetString(3);

                Assert.AreEqual("Japanese Government Bonds held by the Bank of Japan", value);
            }
        }
Esempio n. 22
0
        public List <Competiteur> ImporterXLS(string cheminFichier)
        {
            List <Competiteur> ListeResult = new List <Competiteur>();

            using (Stream stream = new FileStream(cheminFichier,
                                                  FileMode.Open,
                                                  FileAccess.Read,
                                                  FileShare.ReadWrite))
            {
                IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
                excelReader.IsFirstRowAsColumnNames = true;

                //Skip First row
                excelReader.Read();
                while (excelReader.Read())
                {
                    Competiteur competiteurTemporaire = new Competiteur
                    {
                        Nom    = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(excelReader.GetString(0).ToLower()),
                        Prenom = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(excelReader.GetString(1).ToLower()),
                        Club   = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(excelReader.GetString(4).ToLower()),
                    };

                    Sexes sexOut;
                    if (Enum.TryParse(excelReader.GetString(2), out sexOut))
                    {
                        competiteurTemporaire.Sexe = (Sexes)Enum.Parse(typeof(Sexes), excelReader.GetString(2));
                    }

                    double doubleOut;
                    if (double.TryParse(excelReader.GetString(3), out doubleOut))
                    {
                        competiteurTemporaire.Poids = Convert.ToDouble(excelReader.GetString(3));
                    }
                    else
                    {
                        competiteurTemporaire.Poids = 0;
                    }

                    Categories categoriesOut;
                    if (Enum.TryParse(excelReader.GetString(5), out categoriesOut))
                    {
                        competiteurTemporaire.Categorie = (Categories)Enum.Parse(typeof(Categories), excelReader.GetString(5));
                    }

                    ListeResult.Add(competiteurTemporaire);
                }
            }
            return(ListeResult);
        }
        private static string[] GetConcernNames(IExcelDataReader reader)
        {
            var concernNames = new string[reader.FieldCount - Offset];

            reader.Read();
            reader.Read();
            for (var i = Offset; i < reader.FieldCount; i++)
            {
                var name = reader.GetString(i);
                concernNames[i - Offset] = name;
            }

            return(concernNames);
        }
Esempio n. 24
0
        public void Test_BlankHeader()
        {
            IExcelDataReader excelReader =
                ExcelReaderFactory.CreateOpenXmlReader(Helper.GetTestWorkbook("xTest_BlankHeader"));

            excelReader.Read();
            Assert.AreEqual(6, excelReader.FieldCount);
            excelReader.Read();
            for (int i = 0; i < excelReader.FieldCount; i++)
            {
                Console.WriteLine("{0}:{1}", i, excelReader.GetString(i));
            }

            excelReader.Close();
        }
Esempio n. 25
0
        public void Issue_12271_NextResultSet()
        {
            Excel.Log.Log.InitializeWith <Log4NetLog>();

            IExcelDataReader excelReader =
                ExcelReaderFactory.CreateOpenXmlReader(Helper.GetTestWorkbook("xTest_LotsOfSheets"));

            //excelReader.IsFirstRowAsColumnNames = true;

            do
            {
                excelReader.Read();

                if (excelReader.FieldCount == 0)
                {
                    continue;
                }

                //ignore sheets beginning with $e
                if (excelReader.Name.StartsWith("$e", StringComparison.InvariantCultureIgnoreCase))
                {
                    continue;
                }

                Assert.AreEqual("StaffName", excelReader.GetString(0));
            } while (excelReader.NextResult());

            excelReader.Close();
        }
Esempio n. 26
0
    /// <summary>
    /// 获得表格数据
    /// </summary>
    private static DataTable GetTable(IExcelDataReader excelReader)
    {
        DataTable dt = new DataTable();

        dt.TableName = excelReader.Name;

        bool isInit = false;

        string[] ItemArray = null;
        while (excelReader.Read())
        {
            if (!isInit)
            {
                isInit = true;
                for (int i = 0; i < excelReader.FieldCount; i++)
                {
                    dt.Columns.Add("", typeof(string));
                }
                ItemArray = new string[excelReader.FieldCount];
            }

            if (excelReader.IsDBNull(0))
            {
                continue;
            }
            for (int i = 0; i < excelReader.FieldCount; i++)
            {
                string value = excelReader.IsDBNull(i) ? "" : excelReader.GetString(i);
                ItemArray[i] = value;
            }
            dt.Rows.Add(ItemArray);
        }
        return(dt);
    }
Esempio n. 27
0
        static void Main(string[] args)
        {
            string filePath = "C:/Users/Admin/Downloads/test.xlsx";

            FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read);

            //1. Reading from a binary Excel file ('97-2003 format; *.xls)
            //IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
            //...

            //2. Reading from a OpenXml Excel file (2007 format; *.xlsx)
            IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);

            //...
            //3. DataSet - The result of each spreadsheet will be created in the result.Tables
            //DataSet result = excelReader.AsDataSet();
            //...
            //4. DataSet - Create column names from first row
            //excelReader.IsFirstRowAsColumnNames = true;
            //excelReader.
            //DataSet result = excelReader.AsDataSet();

            //5. Data Reader methods
            while (excelReader.Read())
            {
                int colCnt = excelReader.FieldCount;
                Console.WriteLine(excelReader.GetString(colCnt - 1));
                break;
                //excelReader.GetInt32(0);
            }

            //6. Free resources (IExcelDataReader is IDisposable)
            excelReader.Close();
        }
Esempio n. 28
0
        private List <T> ParseFile <T>(IExcelDataReader reader) where T : Element
        {
            var data    = new List <T>();
            var columns = new List <string>();

            while (reader.Read())
            {
                // The row type is determined by the value of the first column:
                //    #PROPERTY_ID --> header row
                //    empty        --> data row
                //    other        --> comment

                var value = GetString(reader, 0);
                if (value == "#PROPERTY_ID")
                {
                    columns = ParseHeaders(reader);
                }
                else if (value.Length == 0)
                {
                    data.Add(ParseElement <T>(reader, columns));
                }
            }

            return(data);
        }
Esempio n. 29
0
 internal SheetData(IExcelDataReader reader)
 {
     ColumnCount = reader.FieldCount;
     Name        = reader.Name;
     while (reader.Read())
     {
         List <string> row       = new List <string>(ColumnCount);
         bool          isNullRow = true;
         for (int i = 0; i < ColumnCount; ++i)
         {
             var    val    = reader.GetValue(i);
             string strVal = "";
             if (val is DateTime)
             {
                 var fmt = reader.GetNumberFormatString(i);
                 strVal = ((DateTime)val).ToString(fmt.Replace('h', 'H'));
             }
             else
             {
                 strVal = val.ToString();
             }
             row.Add(strVal);
         }
         if (!isNullRow)
         {
             data.Add(row);
         }
     }
 }
        protected void btn_Import_Click(object sender, EventArgs e)
        {
            FileStream stream = File.Open("E:/Technovil/Managers.xls", FileMode.Open, FileAccess.Read);

            // Reading from a OpenXml Excel file (2007 format; *.xlsx)
            IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);

            //...
            // DataSet - The result of each spreadsheet will be created in the result.Tables
            // DataSet - Create column names from first row
            excelReader.IsFirstRowAsColumnNames = true;
            DataSet result = excelReader.AsDataSet();

            //5. Data Reader methods
            while (excelReader.Read())
            {
                excelReader.GetString(0);
            }

            //6. Free resources (IExcelDataReader is IDisposable)
            excelReader.Close();

            //Show in GridView
            gv.DataSource = result;
            gv.DataBind();
        }
        public SalesReport ParseExcelDataReader(IExcelDataReader reader)
        {
            if (reader == null)
            {
                throw new ArgumentNullException(nameof(reader));
            }

            var sales = new List <Sale>();

            while (reader.Read())
            {
                var computerId = reader.GetString(0);
                var amount     = reader.GetString(1);

                var nextSale = new Sale();
                nextSale.ComputerId = int.Parse(computerId);
                nextSale.Amount     = decimal.Parse(amount);

                sales.Add(nextSale);
            }

            var salesReport = new SalesReport();

            salesReport.Sales = sales;

            return(salesReport);
        }
Esempio n. 32
0
 protected virtual Document Parse(IExcelDataReader reader)
 {
     var doc = new Document();
     var isFirst = true;
     while (reader.Read())
     {
         if (isFirst && IsFirstRowHeaders)
             doc.SetHeaders(ParseRow(reader, doc));
         else
             doc.Add(ParseRow(reader, doc));
         isFirst = false;
     }
     return doc;
 }
        public static void DoOpenOfficeTest(IExcelDataReader excelReader)
        {
            Assert.IsTrue(excelReader.IsValid);

            excelReader.Read();
            Assert.AreEqual(6, excelReader.FieldCount);
            Assert.AreEqual("column a", excelReader.GetString(0));
            Assert.AreEqual(" column b", excelReader.GetString(1));
            Assert.AreEqual(" column b", excelReader.GetString(2));
            Assert.IsNull(excelReader.GetString(3));
            Assert.AreEqual("column e", excelReader.GetString(4));
            Assert.AreEqual(" column b", excelReader.GetString(5));

            excelReader.Read();
            Assert.AreEqual(6, excelReader.FieldCount);
            Assert.AreEqual(2, excelReader.GetInt32(0));
            Assert.AreEqual("b", excelReader.GetString(1));
            Assert.AreEqual("c", excelReader.GetString(2));
            Assert.AreEqual("d", excelReader.GetString(3));
            Assert.AreEqual(" e ", excelReader.GetString(4));

            excelReader.Read();
            Assert.AreEqual(6, excelReader.FieldCount);
            Assert.AreEqual(3, excelReader.GetInt32(0));
            Assert.AreEqual(2, excelReader.GetInt32(1));
            Assert.AreEqual(3, excelReader.GetInt32(2));
            Assert.AreEqual(4, excelReader.GetInt32(3));
            Assert.AreEqual(5, excelReader.GetInt32(4));

            excelReader.Read();
            Assert.AreEqual(6, excelReader.FieldCount);
            Assert.AreEqual(4, excelReader.GetInt32(0));
            Assert.AreEqual(new DateTime(2012, 10, 13), excelReader.GetDateTime(1));
            Assert.AreEqual(new DateTime(2012, 10, 14), excelReader.GetDateTime(2));
            Assert.AreEqual(new DateTime(2012, 10, 15), excelReader.GetDateTime(3));
            Assert.AreEqual(new DateTime(2012, 10, 16), excelReader.GetDateTime(4));

            for (int i = 4; i < 34; i++)
            {
                excelReader.Read();
                Assert.AreEqual(i + 1, excelReader.GetInt32(0));
                Assert.AreEqual(i + 2, excelReader.GetInt32(1));
                Assert.AreEqual(i + 3, excelReader.GetInt32(2));
                Assert.AreEqual(i + 4, excelReader.GetInt32(3));
                Assert.AreEqual(i + 5, excelReader.GetInt32(4));
            }

            excelReader.NextResult();
            excelReader.Read();
            Assert.AreEqual(0, excelReader.FieldCount);

            excelReader.NextResult();
            excelReader.Read();
            Assert.AreEqual(0, excelReader.FieldCount);

            //test dataset

            DataSet result = excelReader.AsDataSet(true);
            Assert.AreEqual(1, result.Tables.Count);
            Assert.AreEqual(6, result.Tables[0].Columns.Count);
            Assert.AreEqual(33, result.Tables[0].Rows.Count);

            Assert.AreEqual("column a", result.Tables[0].Columns[0].ColumnName);
            Assert.AreEqual(" column b", result.Tables[0].Columns[1].ColumnName);
            Assert.AreEqual(" column b_1", result.Tables[0].Columns[2].ColumnName);
            Assert.AreEqual("Column3", result.Tables[0].Columns[3].ColumnName);
            Assert.AreEqual("column e", result.Tables[0].Columns[4].ColumnName);
            Assert.AreEqual(" column b_2", result.Tables[0].Columns[5].ColumnName);

            Assert.AreEqual(2, Convert.ToInt32(result.Tables[0].Rows[0][0]));
            Assert.AreEqual("b", result.Tables[0].Rows[0][1]);
            Assert.AreEqual("c", result.Tables[0].Rows[0][2]);
            Assert.AreEqual("d", result.Tables[0].Rows[0][3]);
            Assert.AreEqual(" e ", result.Tables[0].Rows[0][4]);

            Assert.AreEqual(3, Convert.ToInt32(result.Tables[0].Rows[1][0]));
            Assert.AreEqual(2, Convert.ToInt32(result.Tables[0].Rows[1][1]));
            Assert.AreEqual(3, Convert.ToInt32(result.Tables[0].Rows[1][2]));
            Assert.AreEqual(4, Convert.ToInt32(result.Tables[0].Rows[1][3]));
            Assert.AreEqual(5, Convert.ToInt32(result.Tables[0].Rows[1][4]));

            Assert.AreEqual(4, Convert.ToInt32(result.Tables[0].Rows[2][0]));
            Assert.AreEqual(new DateTime(2012, 10, 13), result.Tables[0].Rows[2][1]);
            Assert.AreEqual(new DateTime(2012, 10, 14), result.Tables[0].Rows[2][2]);
            Assert.AreEqual(new DateTime(2012, 10, 15), result.Tables[0].Rows[2][3]);
            Assert.AreEqual(new DateTime(2012, 10, 16), result.Tables[0].Rows[2][4]);

            for (int i = 4; i < 33; i++)
            {
                Assert.AreEqual(i + 2, Convert.ToInt32(result.Tables[0].Rows[i][0]));
                Assert.AreEqual(i + 3, Convert.ToInt32(result.Tables[0].Rows[i][1]));
                Assert.AreEqual(i + 4, Convert.ToInt32(result.Tables[0].Rows[i][2]));
                Assert.AreEqual(i + 5, Convert.ToInt32(result.Tables[0].Rows[i][3]));
                Assert.AreEqual(i + 6, Convert.ToInt32(result.Tables[0].Rows[i][4]));
            }
            excelReader.Close();
        }
Esempio n. 34
0
        /// <summary>
        /// Reads the first row to determine which column is located on which column-index.
        /// After that HostEntries will be created using those indexes and added to the internal
        /// list of HostEntries.
        /// </summary>
        private void parse(IExcelDataReader reader)
        {
            int ipIndex = -1;
            int urlIndex = -1;
            int protocolIndex = -1;
            int rankingIndex = -1;
            int fingerPrintIndex = -1;
            int expirationIndex = -1;
            int protocolVersionsIndex = -1;
            int RC4Index = -1;
            int beastIndex = -1;
            int forwardSecrecyIndex = -1;
            int heartbleedIndex = -1;
            int signatureAlgoIndex = -1;
            int poodleIndex = -1;
            int extendedValidIndex = -1;
            int openSSLCCSIndex = -1;
            int HTTPServerSigIndex = -1;
            int serverHostnameIndex = -1;
            int _3DESCipherIndex = -1;

            // Get headers
            reader.Read();
            int columnIndex = 0;
            try
            {
                while (reader.GetString(columnIndex) != null)
                {
                    string cmp = reader.GetString(columnIndex);

                    #region Column finding
                    if (cmp.Equals("IP") && ipIndex == -1) ipIndex = columnIndex;
                    else if (cmp.Contains("URL") && urlIndex == -1) urlIndex = columnIndex;
                    else if (cmp.ToLower().Contains("protocol versions") && protocolVersionsIndex == -1)
                        protocolVersionsIndex = columnIndex;
                    else if (cmp.Contains("RC4") && RC4Index == -1) RC4Index = columnIndex;
                    else if (cmp.ToLower().Contains("ranking") && rankingIndex == -1)
                        rankingIndex = columnIndex;
                    else if (cmp.ToLower().Equals("protocol") && protocolIndex == -1)
                        protocolIndex = columnIndex;
                    else if (cmp.ToLower().Contains("fingerprint") && fingerPrintIndex == -1)
                        fingerPrintIndex = columnIndex;
                    else if (cmp.ToLower().Contains("expiration") && expirationIndex == -1)
                        expirationIndex = columnIndex;
                    else if (cmp.ToLower().Contains("beast") && beastIndex == -1)
                        beastIndex = columnIndex;
                    else if (cmp.ToLower().Contains("forward secrecy") && forwardSecrecyIndex == -1)
                        forwardSecrecyIndex = columnIndex;
                    else if (cmp.ToLower().Contains("heartbleed") && heartbleedIndex == -1)
                        heartbleedIndex = columnIndex;
                    else if (cmp.ToLower().Contains("signature algorithm") && signatureAlgoIndex == -1)
                        signatureAlgoIndex = columnIndex;
                    else if (cmp.ToLower().Contains("poodle") && poodleIndex == -1)
                        poodleIndex = columnIndex;
                    else if (cmp.ToLower().Contains("extended validation") && extendedValidIndex == -1)
                        extendedValidIndex = columnIndex;
                    else if (cmp.ToLower().Contains("openssl ccs") && openSSLCCSIndex == -1)
                        openSSLCCSIndex = columnIndex;
                    else if (cmp.ToLower().Contains("http server sig") && HTTPServerSigIndex == -1)
                        HTTPServerSigIndex = columnIndex;
                    else if (cmp.ToLower().Contains("server host name") && serverHostnameIndex == -1)
                        serverHostnameIndex = columnIndex;
                    else if (cmp.ToLower().Contains("3des cipher presence") && _3DESCipherIndex == -1)
                        _3DESCipherIndex = columnIndex;
                    else
                    {
                        _customAttributes[columnIndex] = cmp;
                    }
                    #endregion

                    columnIndex += 1;
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(string.Format("Excel header reading touched outer bounds: {0}", ex.Message));
            }

            // Get rows and add them as children of each header
            while (reader.Read())
            {
                HostEntry h = new HostEntry(getColumn(reader, urlIndex),
                    getColumn(reader, protocolIndex));

                h.SetIP(getColumn(reader, ipIndex));
                h.SetRanking(getColumn(reader, rankingIndex));
                h.SetFingerPrintCert(getColumn(reader, fingerPrintIndex));
                h.SetExpirationDate(getColumn(reader, expirationIndex));
                h.SetProtocolVersions(getColumn(reader, protocolVersionsIndex));
                h.SetBeastVulnerarbility(getColumn(reader, beastIndex));
                h.SetForwardSecrecy(getColumn(reader, forwardSecrecyIndex));
                h.SetHeartbleedVulnerability(getColumn(reader, heartbleedIndex));
                h.SetSignatureAlgorithm(getColumn(reader, signatureAlgoIndex));
                h.SetPoodleVulnerability(getColumn(reader, poodleIndex));
                h.SetExtendedValidation(getColumn(reader, extendedValidIndex));
                h.SetOpenSSLCCSVulnerable(getColumn(reader, openSSLCCSIndex));
                h.SetHTTPServerSignature(getColumn(reader, HTTPServerSigIndex));
                h.SetServerHostName(getColumn(reader, serverHostnameIndex));
                h.Set3DESPresence(getColumn(reader, _3DESCipherIndex));
                
                foreach (DictionaryEntry entry in _customAttributes)
                {
                    h.AddCustomAttribute((string) entry.Value, 
                        getColumn(reader, (int) entry.Key));
                }
                if (!h.IsEmpty()) entries.Add(h);
            }
            reader.Close();
            ParserDelegator.CallOnParseComplete();
        }