Gemme CSV fil hos client.
Hej,Jeg vil gerne gemme min nogle data i csv fil hos clienten.
Jeg har lavet et lille program til at test funktionaliteten.
Man kan enten bruge nogle felter eller et text felt til at definere sin csv.
Det der bliver skrevet til filen bliver vist i en iframe når man trykker på knappen
Men der er selvfølgelig et enkelt problem.
Det virker fint med at gemme.
Men når jeg åbne filen i excel bagefter, registre den ikke mine ";" som at den skal skifte celle.
Hvis jeg laver en tom fil og kopiere indholdet af den anden fil over i, igennem feks. notepad. Så virker min fil nr.2 selv om indholdet er præcis det samme.
Har i nogle god bud på hvorfor min CSV fil ikke virke i mit oprindelige format ?
Jeg har lagt min test side med, så kan i selv prøve det.
<html>
<head>
<title>Save to excel</title>
<script type="text/javascript">
function saveFile()
{
var outputstring = window.f00.value + '\u003B' +
window.f10.value + '\u003B' +
window.f20.value + '\u003B' +
window.f30.value + '\u003B' +
window.f40.value + '\u000D' +
window.f01.value + '\u003B' +
window.f11.value + "\u003B" +
window.f21.value + "\u003B" +
window.f31.value + "\u003B" +
window.f41.value + "\u000D" +
window.f02.value + "\u003B" +
window.f12.value + "\u003B" +
window.f22.value + "\u003B" +
window.f32.value + "\u003B" +
window.f42.value;
var csvAreaField = document.getElementById('csvarea');
var useCSVAreachk = document.getElementById('usecsvarea');
// check if iFrame allready exists, not necessary to create another one
var w = window.frames.myIFrame;
if( !w )
{
w = document.createElement('iframe');
w.id = 'myIFrame';
//w.style.display = 'none';
document.body.insertBefore( w );
w = window.frames.myIFrame;
if (!w)
{
alert('Could not create Excel file');
return false;
}
}
var d = w.document;
d.open( 'text/csv' );
d.charset = 'utf-8';
if( useCSVAreachk.checked )
{
d.write( csvAreaField.value );
}
else
{
d.write( outputstring );
}
d.close();
d.execCommand( 'saveas' , null , 'RenameExtentionToCSV.csv' );
w.close();
}
</script>
</head>
<body>
Save as a .CSV file to Excel.
This works only if you follow following procedure:
<ol>
<li>Enter text in fields</li>
<li>Save file as txt file using save button</li>
<li>when saved, rename the extention to .csv</li>
<li>Open the file in excel</li>
</ol>
<hr>
<textarea id="csvarea" rows="4" cols="90"></textarea><input type="checkbox" id="usecsvarea">
<table>
<tr>
<td><input type="text" id="f00"></td>
<td><input type="text" id="f10"></td>
<td><input type="text" id="f20"></td>
<td><input type="text" id="f30"></td>
<td><input type="text" id="f40"></td>
</tr>
<tr>
<td><input type="text" id="f01"></td>
<td><input type="text" id="f11"></td>
<td><input type="text" id="f21"></td>
<td><input type="text" id="f31"></td>
<td><input type="text" id="f41"></td>
</tr>
<tr>
<td><input type="text" id="f02"></td>
<td><input type="text" id="f12"></td>
<td><input type="text" id="f22"></td>
<td><input type="text" id="f32"></td>
<td><input type="text" id="f42"></td>
</tr>
</table>
<button type="button" onclick="saveFile()">Save matrix to csv file</button>
<br>
</body>
</html>
