[ S A J A @ 01.10.2017. 23:40 ] @
Pozdrav.

Dobio sam excel fajl u attachmentu da ga importujem u svoj softver. Međutim, NET biblioteka za excel mi ne prepoznaje fajl. Excel ga normalno otvara ali kad pokušam da uradim Save onda kaže da ne može da snimi u tom formatu a kad ga snimim sa Save As kao PRAVI excel format, onda mi radi import. Da li neko može na osnovu sadržaja da provali koji je to format?

[ Shadowed @ 02.10.2017. 08:10 ] @
Otvori ga u Notepad-u i samo ce ti se kasti :)
[ S A J A @ 02.10.2017. 09:05 ] @
To sam već probao i nije mi se kaslo :)

Vidim da je nešto blisko običnom tekstualnom fajlu (jer se podaci vide) ali opet ima neke "čudne" karaktere i formatiranje. Mislim, ništa mi ne znači da ga gledam, treba mi naziv ili opis tog formata, da znam kako da ga importujem.
[ Brodoplovac @ 02.10.2017. 16:56 ] @
Bez problema sam ga otvorio u Kingsoft officu.
Onda sam ga sačuvao kao XLSX.
Evo ga u prilogu zipovan.

Pogrešio sam. Ovo je NET forum, mislio sam da je ovo Excel forum i da je problem sa korumpiranim fajlom.

[Ovu poruku je menjao Brodoplovac dana 02.10.2017. u 18:45 GMT+1]
[ Shadowed @ 02.10.2017. 21:29 ] @
Mozes i u Excel-u da otvoris. Otvori i on i kad snimi u xls(x) posle moze da koristi normalno ali hoce da izbegne tu konverziju (verovatno cesto dobija te fajlove).

@S A J A, na to sam i mislio, da vidis da nije stvarno excel-ov fajl, iako ovaj uspe da ga otvori. Koliko sam na brzinu video, nije mi poznat konkretan format ali mi deluje da imas fiksan broj karaktera izmedju dve celije u jednom redu (ne secam se za prelaz u novi red, ranije sam danas pogledao). Ako sam to dobro video, ne bi trebalo da ti bude problem da napises kod za citanje tog fajla.
[ S A J A @ 02.10.2017. 23:46 ] @
Da, treba mi neka automatika. Potegao sam ove koji su mi dostavili fajl da vide sa svojim programerima koji je to format. Malo sam gledao po netu sve te formate koje čita excel i najveća sumnja mi je na XLR fajlu koji pravi neki Microsoft Works program. To je izgleda neki program iz praistorije. Excel 2016 ga otvara bez problema ali ne može da ga snima (što se upravo i meni dešava). Nažalost, nisam uspeo da nađem NI JEDAN primer fajla na internetu da uporedim pa je sada samo na nivou osumljičenog :)
[ djoka_l @ 03.10.2017. 10:03 ] @
Excel 2010 prepoznaje ovaj format kao Excel 2 format i po defaultu ne dozvoljava da se fajl edituje. Ako se dobro sećam, Excel 2 je bio aktuelan još negde početkom devedesetih, tako da nisam siguran šta je to što pravi fajl u ovako zastarelom formatu.

Edit: Wiki kaže da je Excel 2 iz 1987. godine. Nisam mnogo pogrešio.


[ S A J A @ 03.10.2017. 13:13 ] @
Hvala što si ovo provalio. Excel 2016 nema ovaj prozor gde se vidi koji je format. Na wikipediji piše da je taj Excel 2.0 izašao 1987 godine. Ko zna iz kakvog prstarog softvera se radi ovaj export. Nema šanse da pravim import za to kad već imam gotovu .NET biblioteku koja čita sve formate od 97 pa do najnovijeg. I lepo mi sve prebaci u datatable sa imenima kolona pa onda koristim LINQ da izvlačim šta mi treba. Neka lepo exportuju u noviji format ili ako ih ne mrzi, posle exporta neka otvore, snime kao novi fajl i onda importuju.
[ djoka_l @ 03.10.2017. 14:14 ] @
Izvini što moram da kažem, ali mene strašno nervira kada neko napiše to što si ti napisao
Citat:
Nema šanse da pravim import za to kad već imam gotovu .NET biblioteku koja čita sve formate od 97 pa do najnovijeg.

Nema šanse da je sav softver na svetu napisao Microsoft, te da ako MS nije objavio biblioteku koja radi XYZ, to ne može ni da se napiše.
Vodi se sloganom - veži konja gde ti gazda kaže - pa se DOGOVORI sa klijentom šta da radiš, čak i ako to podrazumeva da napraviš PS + VBA skript koji će raditi posao.
Citat:
Neka lepo exportuju u noviji format ili ako ih ne mrzi, posle exporta neka otvore, snime kao novi fajl i onda importuju.

Neka se ti lepo dogovoriš sa njima šta da se radi, nađite najprihvatljivije rešenje za obe strane.

Uostalom, evo opisa Excel 2 formata, zamisli to može i da se isprogramira (ali mora da se skloni miš sa strane).
https://www.openoffice.org/sc/excelfileformat.pdf
[ Shadowed @ 03.10.2017. 14:42 ] @
/me uzima kokice, zavaljuje se i prati :)
[ S A J A @ 03.10.2017. 16:40 ] @
Citat:
djoka_l:
Izvini što moram da kažem, ali mene strašno nervira kada neko napiše to što si ti napisao


Đoko, skrenuo si sa teme. Probaću da objasnim. Posao je dogovoren unapred, i što se tiče novca i što se tiče mog vremena. Dogovor je bio da uradim import na osnovu excel fajla (mada, što jes jes, i dobio sam excel fajl) i pošto već imam odrađen deo koji se tiče samog isčitavanja excel fajla, cena i moje utrošeno vreme su bazirani na biznis logici. Konretno, to bi trebalo da košta 200e i da mi oduzme neko vreme. Sa ovim "čudnim" fajlom okolnosti se _drastično_ menjaju (kad se posmatra u odnosu na konkretnu situaciju), jer bih morao da pravim low-level import, što do sada nisam radio (uglavnom importujem standardne tipove kao što su xls, csv, xml...), pa bih utrošio golemo vreme, samim tim bi se i cena napumpala značajno u odnosu na dogovoreno. Trenutno nisam nešto pri vremenu i ne odgovara mi da se priča širi. Lakše mi je da tražim da mi daju ispravan fajl :) Sad čekam odgovor, a ako baš ne bude moglo, onda ću videti šta ću da radim.
[ djoka_l @ 03.10.2017. 19:31 ] @
Let me google it for you: powershell convert xls to xlsx



https://gist.github.com/gabceb/954418

Code:

$xlFixedFormat = [Microsoft.Office.Interop.Excel.XlFileFormat]::xlOpenXMLWorkbook
write-host $xlFixedFormat
$excel = New-Object -ComObject excel.application
$excel.visible = $true
$folderpath = "C:\Users\gabceb\Documents\testXLS"
$filetype ="*xls"
Get-ChildItem -Path $folderpath -Include $filetype -recurse | 
ForEach-Object `
{
    $path = ($_.fullname).substring(0, ($_.FullName).lastindexOf("."))
    
    "Converting $path"
    $workbook = $excel.workbooks.open($_.fullname)

    $path += ".xlsx"
    $workbook.saveas($path, $xlFixedFormat)
    $workbook.close()
    
    $oldFolder = $path.substring(0, $path.lastIndexOf("\")) + "\old"
    
    write-host $oldFolder
    if(-not (test-path $oldFolder))
    {
        new-item $oldFolder -type directory
    }
    
    move-item $_.fullname $oldFolder
    
}
$excel.Quit()
$excel = $null
[gc]::collect()
[gc]::WaitForPendingFinalizers()