- Katılım
- 12 Mart 2009
- Mesajlar
- 119
- Excel Vers. ve Dili
- Office 365 - Ingilizce
Merhaba,
Haftalik olarak bize gonderilen bir SQL raporu var fakat rapor XLS formatinda ve actigimiz zaman asagidaki hatayi veriyor:
The file format and extension of 'DSZS497.xIs' don‘t match. The file could be corrupted or unsafe. Unless you trust its source, don't
open it. Do you want to open it anyway?
Evet diyip dosyayi acabiliyoruz fakat dosyanin icindeki verilerin bazilari asagidaki gibi bozuluyor:
14:1F07
14:8A7A
14:24A7
3.996527778
4.890972222
14:283D41
14:283D41
Bu bozulmus olan hucreleri hic bir sekilde duzeltemiyoruz. Fakat XLS formatindaki dosyanin uzantisini TXT olarak degistirirsek, notepad ile acinca veriler bozulmuyor ancak bu kez de bambaska bir formatta gorunuyor:
SQL> @/exashare/dba_mnl/0525497/reporting.sql
<br>
<p>
<table border='1' width='90%' align='center' summary='Script output'>
<tr>
<th scope="col">
Client Org
</th>
<th scope="col">
ClientTop
</th>
<th scope="col">
SubUnit
</th>
<th scope="col">
Subunit
</th>
<th scope="col">
Su
</th>
<th scope="col">
Subunit E
</th>
</tr>
<tr>
<td>
Bung
</td>
<td>
14:3554A5
</td>
<td>
UA-ET
</td>
<td>
14:359995
</td>
<td>
UA
</td>
<td>
31-DEC-99
</td>
</tr>
<tr>
<td>
Bung
</td>
<td>
14:3554A5
</td>
<td>
UA-Khim
</td>
<td>
30-JUN-22
</td>
</tr>
</table>
<p>
SQL> SPOOL OFF
<br>
Notepad den tum veriyi secip kopyaliyorum ve Excel de A sutununu secip yapistir diyorum, ayni veriler yine bozuluyorlar. Bu sebeple asagidaki macro ile XLS dosyasini acip icindeki tum ( : ) isaretlerini ( ': ) seklinde degistirip TXT olarak kaydedebiliyorum. Bu text dosyasindaki veriyi kopyalayip Excelde A sutununa yapistirinca veriler bozulmuyor. Eger bul-degistir kullanip tum listeden ( ' ) isaretini kaldirirsam yine veriler bozuluyor. Bu sebeple yeni bir sutun olusturup =SUBSTITUTE(B2,"'","") formulu ile veriler bozulmadan ( ' ) isaretini kaldirabiliyorum.
Takildigim kisim ise macro ile TXT dosyasindan verileri kopyalayip Excelde A sutunu altina yapistirmanin bir yolunu bulamadim. Manuel olarak kopyala yapistir yaptigimda her veri olmasi gereken sutun altinda oluyor fakat denedigim bir kac macroda sonuc ayni TXT dosyasindaki gibi oluyor (tum veri A sutunu altinda ve yukaridaki ornekteki gibi).
Verileri elle kopyala yapistir yaptigimiz sekilde calisacak bir kod bilen arkadasimiz varsa yardimini rica ediyorum.
Simdiden cok tesekkurler
Ferdi
Haftalik olarak bize gonderilen bir SQL raporu var fakat rapor XLS formatinda ve actigimiz zaman asagidaki hatayi veriyor:
The file format and extension of 'DSZS497.xIs' don‘t match. The file could be corrupted or unsafe. Unless you trust its source, don't
open it. Do you want to open it anyway?
Evet diyip dosyayi acabiliyoruz fakat dosyanin icindeki verilerin bazilari asagidaki gibi bozuluyor:
14:1F07
14:8A7A
14:24A7
3.996527778
4.890972222
14:283D41
14:283D41
Bu bozulmus olan hucreleri hic bir sekilde duzeltemiyoruz. Fakat XLS formatindaki dosyanin uzantisini TXT olarak degistirirsek, notepad ile acinca veriler bozulmuyor ancak bu kez de bambaska bir formatta gorunuyor:
SQL> @/exashare/dba_mnl/0525497/reporting.sql
<br>
<p>
<table border='1' width='90%' align='center' summary='Script output'>
<tr>
<th scope="col">
Client Org
</th>
<th scope="col">
ClientTop
</th>
<th scope="col">
SubUnit
</th>
<th scope="col">
Subunit
</th>
<th scope="col">
Su
</th>
<th scope="col">
Subunit E
</th>
</tr>
<tr>
<td>
Bung
</td>
<td>
14:3554A5
</td>
<td>
UA-ET
</td>
<td>
14:359995
</td>
<td>
UA
</td>
<td>
31-DEC-99
</td>
</tr>
<tr>
<td>
Bung
</td>
<td>
14:3554A5
</td>
<td>
UA-Khim
</td>
<td>
30-JUN-22
</td>
</tr>
</table>
<p>
SQL> SPOOL OFF
<br>
Notepad den tum veriyi secip kopyaliyorum ve Excel de A sutununu secip yapistir diyorum, ayni veriler yine bozuluyorlar. Bu sebeple asagidaki macro ile XLS dosyasini acip icindeki tum ( : ) isaretlerini ( ': ) seklinde degistirip TXT olarak kaydedebiliyorum. Bu text dosyasindaki veriyi kopyalayip Excelde A sutununa yapistirinca veriler bozulmuyor. Eger bul-degistir kullanip tum listeden ( ' ) isaretini kaldirirsam yine veriler bozuluyor. Bu sebeple yeni bir sutun olusturup =SUBSTITUTE(B2,"'","") formulu ile veriler bozulmadan ( ' ) isaretini kaldirabiliyorum.
Kod:
Sub Converttotxt()
Dim sBuf As String
Dim sTemp As String
Dim iFileNum As Integer
Dim sFileName As String
sFileName = "C:\Users\" & Environ("UserName") & "\Desktop\Automation\0525497test.xls"
iFileNum = FreeFile
Open sFileName For Input As iFileNum
Do Until EOF(iFileNum)
Line Input #iFileNum, sBuf
sTemp = sTemp & sBuf & vbCrLf
Loop
Close iFileNum
sTemp = Replace(sTemp, ":", "':")
iFileNum = FreeFile
sFileName = "C:\Users\" & Environ("UserName") & "\Desktop\Automation\" & "\Completed_" & Format(Now, "yyyymmdd") & ".txt"
Open sFileName For Output As iFileNum
Print #iFileNum, sTemp
Close iFileNum
MsgBox "Completed!"
End Sub
Verileri elle kopyala yapistir yaptigimiz sekilde calisacak bir kod bilen arkadasimiz varsa yardimini rica ediyorum.
Simdiden cok tesekkurler
Ferdi