using System;
using System.Collections.Generic;
using System.Linq;
using System.Data;
using System.Data.OleDb;
using System.Data.Common;
using Newtonsoft.Json;
using System.IO;
namespace ukol
{
class Program
{
static void Main(string[] args)
{
var pathToExcel = @"c:\priklad.xlsx";
var sheetName = "q";
var connectionString = String.Format(@"
Provider=Microsoft.ACE.OLEDB.12.0;
Data Source={0};
Extended Properties=""Excel 12.0 Xml;HDR=YES""
", pathToExcel);
using (var conn = new OleDbConnection(connectionString))
{
conn.Open();
var cmd = conn.CreateCommand();
cmd.CommandText = String.Format(
@"SELECT * FROM [{0}$]",
sheetName
);
using (var rdr = cmd.ExecuteReader())
{
var query =
(from DbDataRecord row in rdr
select row).Select(x =>
{
Dictionary<string, object> item = new
Dictionary<string, object>();
for (int i = 0; i < 20; i++) // inicializátor: přiřadí proměnné i hodnotu 0; podmínka: dokud je i menší než 20; inkrement: dokud platí podmínka, zvyš i o jedna
{
item.Add(rdr.GetName(i), x[i]);
}
return item;
});
var json = JsonConvert.SerializeObject(query); // serializuj objekt do souboru JSON
var result = json;
File.WriteAllText("vystup.json", json); // data jsou zapsána do souboru vystup.json
Console.WriteLine(result);
foreach (string file in Directory.EnumerateFiles(".", "*.xlsx"))
{
string contents = File.ReadAllText(file);
}
}
}
}
}
}
Tak, a jak udělat, aby se mi ten "výstup" zapsal do .json souboru? :)