問題描述:
在工做過程當中,有時會遇到這樣的問題,寫好sql查詢語句在數據庫中查詢數據,看到行數(好比說是1000行),可是把查詢結果複製到Excel裏面,卻發生了行列錯位問題,而致使Excel裏面的行數是超過1000行的,形成數據行數的不一致。html
問題重現:
字段值包含char(10)換行符,複製字段值到Excel.sql
根源:
某些行列對應單元格包含了換行符,致使複製到Excel裏面發生錯位。數據庫
解決方案:
方案1(推薦):把有問題的字段值,用英文雙引號括起來,這樣就能把字段值裏面的換行符限制在正確的Excel單元格里面。
方案2:經過腳本把對應的字段值換行符去掉。spa
腳本:
code
/* 腳原本源:https://www.cnblogs.com/zhang502219048/p/10989296.html */ create table #t ( Name nvarchar(50), Remark nvarchar(50) ) --問題重現條件:單元格里麪包含換行符 insert into #t values ('A1' + char(10) + 'B1', '行1'), ('A2B2', '行2') --問題重現結果:把sql查詢結果複製到Excel會錯位 select Name, Remark from #t --解決方案1:能夠直接在字段加雙引號處理,複製到Excel就不會錯位,也不會顯示多餘的雙引號。至關於把字段裏的換行限制在單元格內 select '"'+ Name + '"' as Name, Remark from #t --解決方案2:能夠把換行符去掉 select replace(replace(Name, char(13), ''), char(10), '') as Name, Remark from #t drop table #t
運行結果:htm
查詢結果複製到Excel的效果:blog
後記:
以上是本人在平常工做中處理數據庫查詢結果複製到Excel發生錯位問題、行數不一致問題所摸索到的解決辦法,特此分享一下,但願對遇到一樣問題的朋友有所幫助。若是幫助到了你,歡迎給我打賞支持一下哦。
【轉載請註明博文來源:http://www.javashuo.com/article/p-kbbqqmks-dq.html】get