» »

Branje podatkov iz excela in parsanje v objekte [C# - ASP.NET]

Branje podatkov iz excela in parsanje v objekte [C# - ASP.NET]

zbenko ::

Pozdravljeni!

Problem:
Predpostavimo 3 različne merilne sisteme (recimo sistemi za merjenje športnikovih karakteristik (npr. ravnotežje, moč in vzdržljivost)), kjer se beleženi podatki shranjujejo v excelove tabele. Vsak merilni sistem ima npr.:
-4 parametre (npr. ime, priimek, rojstvo, šport),
-4 parametre odvisne od merilnega sistema (npr. naziv merilnega sistema, naziv meritve,...)
-N št. parametrov (N je med 20 in 40) odvisnih od merilnega sistema, kjer so beleženi rezultati meritve.

Torej na podlagi meritev se v našem primeru generirajo tri različne excelove datoteke, za vsak merilni sistem svoja, s svojimi parametri.

Primer excelove tabele iz enega merilnega sistema:
 Excel podatki

Excel podatki



Drugi merilni sistem, ima drugačno strukturo podatkov - drugačni parametri (razen prvih štirih kolon).

Torej želim ustvariti objektno strukturo, kjer bi podatke iz excela prenesel v spletno aplikacijo, jih prebral in parsal v razrede. Kako se lotit tega? Da delam razred za vsak merilni sistem posebej odpade (1. ker je preveč parametrov --> preveč lastnosti, 2. lahko nanase tudi na 15-20 merilnih sistemov). Torej želel bi si nekakšno generično rešitev, kako podatke iz različnih excelovih datotek prenest v spletno aplikacijo. Kakšen predlog kje začeti?

Hvala.

GupeM ::

Če te prav razumem, rabiš razred s:
- prvimi štirimi parametri, ki so pri vseh enaki
- Dictionary-jem (Map-om v javi), kjer bi imel shranjene vrednosti glede na ime stolpca (to je za tiste 4 parametrem ki so odvisni od merilnega sistema)
- Še en dictionary, kjer bi imel shranjene ostale parametre (20-40 njih). Če za zadnji primer ne potrebuješ imen, lahko uporabiš navaden seznam (List).

psevdokoda:
class Razred {
  String firstName;
  String lastName;
  Date bDate;
  String sport;

  Map<String, String> params1;
  Map<String, Number> measurements;
}


Če so tudi drugi štirje parametri vedno isti, lahko namesto Mapa uporabiš kar 4 spremenljivke, ki so ustreznega tipa.

Torej, namesto:
Map<String, String> params1

narediš:
String nazivMerilnegaSistema;
String nazivMeritve;
.
.
.

Ni mi najbolj jasno, kaj točno te muči...

zbenko ::

No najbrž ni bilo jasno napisano, da želim podatke, ki jih preberem iz excela, prepisati v relacijsko podatkovno bazo. Ter po njih kasneje tudi poizvedovat. Če kaj pomaga, uporabljalo bi se ORM orodje Entity Framework ali po potrebi NHibernate.
Torej glavni problem je, ker ne vem kako zastaviti rešitve za problem, kjer bom imel različne strukture excelovih tabel (ni določeno koliko) in shranjevanje podatkov iz tabel v PB.

galu ::

GupeM ti je dal predlog za shemo "objekta" za prenos. Enostaven DB, navdihnjen z imeni iz slednjega in podporo za N atributov/vrednosti bi potem zgledal nekako tako:


Do mind, da je v tej shemi kar nekaj redundance, ki bi se jo dalo odstraniti in nasplošno bolj razčleniti DB.

Kako boš dejansko prenesel iz Excela in napolnil DB je pa druga stvar in ima ogromno različnih pristopov. Nekako se je kot standard uveljavila JSON notacija. Z njo serializiraš objekt v txt obliko (veliko jezikov ima za to že napisane knjižnice) in ga enostavno prebereš v spletni aplikaciji, kjer nafilaš DB. Lahko pa si seveda čisto svoj protokol/notacijo sestaviš, če ti bo lažje.
Tako to gre.

Zgodovina sprememb…

  • spremenil: galu ()

krneki0001 ::

Zakaj rabiš program za filat v bazo iz excela? Pa že sam excel ti to lahko naredi. En makro in je vse narejeno.

http://www.heritage-tech.net/908/insert...


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

6 pospeškometrov pri 1 kHz, kateri mikrokrmilnik?

Oddelek: Elektrotehnika in elektronika
171930 (1435) srus
»

Domače branje: Norbert Wiener: Cybernetics (1948) (strani: 1 2 )

Oddelek: Novice / Domače branje
8823829 (20766) PrihajaNodi
»

Sonyjeve fotografske novosti (strani: 1 2 )

Oddelek: Novice / Ostale najave
7416927 (13229) technolog
»

Canon EOS 1100D in EOS 600D (strani: 1 2 )

Oddelek: Novice / Ostalo
7825185 (22367) lurker
»

Delovanje elektronske tehtnice

Oddelek: Elektrotehnika in elektronika
72370 (2210) snow

Več podobnih tem