TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
Julie
NA
22
12.7k
Extract from Excel to to JSON
May 4 2020 4:52 PM
I need to extract data from an Excel Spreadsheet and port it into a JSON file. The code below extracts the rows I need. But the format of the spreadsheet is such that type is actually a collection:
example Excel input
Row Name Type
1 John Doe First base
2 Second base
3 Pitcher
4 Jack Smith Third Base
example output
{
"types": [
{"type": "First Base"},
{"type":"Second Base"},
{"type":"Pitcher"}
],
"name": {
"name": "John Doe"
}
}
This code will extract the rows but because the types are on separate rows, how do I roill all types of a player into one JSON dcoument?
static void AlternateRead()
{
var pathToExcel = @"C:\temp\Players.xlsx";
var sheetName = "Sheet1";
var destinationPath = @"C:\Temp\Players.json";
var connectionString = $@"
Provider=Microsoft.ACE.OLEDB.12.0;
Data Source={pathToExcel};
Extended Properties=""Excel 12.0 Xml;HDR=YES""
";
try
{
using (var conn = new OleDbConnection(connectionString))
{
conn.Open();
var cmd = conn.CreateCommand();
cmd.CommandText = $"SELECT * FROM [{sheetName}$] WHERE PlayerID IS NOT NULL OR Positiontype IS NOT NULL";
using (var rdr = cmd.ExecuteReader())
{
//LINQ query - when executed will create anonymous objects for each row
var query = rdr.Cast<DbDataRecord>().Select(row => new
{
id = Guid.NewGuid(),
PlayerName = row[3].ToString().Trim(),
Type = row[4].ToString().Trim() //// <== there are 1 to many types per player
});
var json = JsonConvert.SerializeObject(query);
File.WriteAllText(destinationPath, json);
}
}
}
catch (Exception ex)
{
Console.WriteLine($"Error {0}", ex.Message);
Console.ReadLine();
}
}
Reply
Answers (
1
)
How to clear the session when the browser tab is closed
How to make responsive design in wpf ?