KB2922935 - แก้ไข: ส่วนขยายการแสดงผลของ Excel สร้างไฟล์ที่เสียหายเมื่อคุณใช้รหัสที่ไม่สามารถพิมพ์ได้ใน SSRS 2012 หรือ SSRS 2014

นำไปใช้กับ
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

โปรแกรมแก้ไขด่วนนี้ใช้กับบริการการรายงาน Microsoft SQL Server 2012 (SSRS 2012) และบริการการรายงาน SQL Server 2014 (SSRS 2014)

อาการ

ลองทำตามสถานการณ์ต่อไปนี้:

  • คุณมีรายงานที่มีกล่องข้อความเพียงกล่องเดียวใน Microsoft SQL Server 2012 Reporting Services (SSRS 2014)

  • คุณตั้งค่านิพจน์สําหรับกล่องข้อความเป็น Chr (n) โดย n คือโค้ดควบคุม C0 (โค้ดที่ไม่สามารถพิมพ์ได้) ค่าอื่นที่ไม่ใช่ค่าใดค่าหนึ่งต่อไปนี้:

    9 (แท็บ U+0009)
    10 (U+000A ของตัวดึงข้อมูลบรรทัด),
    13 (U+000D CARRIAGE RETURN),
    ค่าอักขระควบคุม C0 (0 ถึง 31)

  • แสดงรายงาน ส่งออกไปยัง Excel (รูปแบบ Office Open XML - xlsx) แล้วเปิดเวิร์กบุ๊ก Excel

ถ้ารายงานมีโค้ดตัวควบคุม C0 ในสถานการณ์นี้ ส่วนขยายการแสดง OpenXML ของ Excel ที่รวมอยู่ใน SSRS 2012 จะสร้างเวิร์กบุ๊กที่ Excel รับรู้ว่าไม่ถูกต้อง

หมายเหตุ ปัญหานี้ยังเกิดขึ้นใน SSRS 2008 R2 ด้วย

การแก้ปัญหา

ปัญหานี้ได้รับการแก้ไขครั้งแรกในการอัปเดตแบบสะสมของ SQL Server ต่อไปนี้

การอัปเดตสะสม 1 สําหรับ SQL Server 2014 /en-us/help/2931693

การอัปเดตสะสม 9 สําหรับ SQL Server 2012 SP1 /en-us/help/2931078

เกี่ยวกับการอัปเดตสะสมสําหรับ SQL Server

การอัปเดตแบบสะสมใหม่แต่ละรายการสําหรับ SQL Server จะมีโปรแกรมแก้ไขด่วนและการแก้ไขข้อบกพร่องด้านความปลอดภัยทั้งหมดที่รวมอยู่ในการอัปเดตแบบสะสมครั้งก่อนหน้า ตรวจดูการอัปเดตแบบสะสมล่าสุดสําหรับ SQL Server:

      

สถานะ

Microsoft ได้ยืนยันว่านี่เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ที่แสดงไว้ในส่วน "นำไปใช้กับ"