問題描述:
在工作過程中,有時會遇到這樣的問題,寫好sql查詢語句在數據庫中查詢數據,看到行數(比如說是1000行),但是把查詢結果復制到Excel里面,卻發生了行列錯位問題,而導致Excel里面的行數是超過1000行的,造成數據行數的不一致。
問題重現:
字段值包含char(10)換行符,復制字段值到Excel.
根源:
某些行列對應單元格包含了換行符,導致復制到Excel里面發生錯位。
解決方案:
方案1(推薦):把有問題的字段值,用英文雙引號括起來,這樣就能把字段值里面的換行符限制在正確的Excel單元格里面。
方案2:通過腳本把對應的字段值換行符去掉。
腳本:
/* 腳本來源: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
運行結果:
查詢結果復制到Excel的效果:
后記:
以上是本人在日常工作中處理數據庫查詢結果復制到Excel發生錯位問題、行數不一致問題所摸索到的解決辦法,特此分享一下,希望對遇到同樣問題的朋友有所幫助。如果幫助到了你,歡迎給我打賞支持一下哦。
【轉載請注明博文來源:https://www.cnblogs.com/zhang502219048/p/10989296.html】