วันศุกร์ที่ ๒ กรกฎาคม พ.ศ. ๒๕๕๓

ปัญหาเมื่อ export excel: The file you are trying to open, 'name.xls', is in a different format than specified by the file extension

ช่วงนี้หลังจากที่ทำงาน migrate Office จาก 2003 เป็น 2007 ก็เจอปัญหาว่าโปรแกรมที่เราสร้างรายงาน Excel ด้วยวิธีการกำหนด Response.ContentType = "application/vnd.ms-excel" ได้ผลลัพธ์ตามปกติ แต่ว่าจะมี alert ขึ้นมาว่า

The file you are trying to open, 'name.xls', is in a different format than specified by the file extension. Verify that the file is not corrupted and is from a trusted source before opening the file. Do you want to open the file now?

จริงๆก็ไม่ได้มีปัญหาอะไรมากหรอกครับ เพราะแค่กด OK ก็เปิดดู Excel ได้ตามปกติ แต่หลังๆเริ่มมี user บ่นขึ้นเรื่อยๆ เลยลอง search ดูก็พบ article ที่เวบไมโครซอฟท์ครับ

When you open a file in Excel 2007, you receive a warning that the ...
Article ID: 948615 - Last Review: March 4, 2008 - Revision: 1.1
support.microsoft.com/kb/948615


วิธีแก้ก็ง่ายๆคือไปกำหนด registry นั่นเอง ผมก็เลยทำเป็นไฟล์ reg จะได้ส่งให้ user เฉพาะรายที่มีปัญหารันได้เลย (จริงๆแล้วเราสามารถใช้ Group Policy ในการแก้ปัญหานี้ได้ครับ ลองดูใน article ละกัน)

ก่อนอื่นก็สร้างไฟล์ชื่อ ExcelFileFormat.reg สำคัญตรงนามสกุลไฟล์ให้เป็น .reg นะครับ แล้วก็ใส่เขียนโค้ดดังนี้

REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Security]
"ExtensionHardening"=dword:0

จากนั้นก็ save ไฟล์

พอต้องการใช้ ก็ double click ที่ไฟล์นี้ได้เลยครับ

1 ความคิดเห็น:

ไม่ระบุชื่อ กล่าวว่า...

หุหุ