XLL
application/vnd.ms-excel
Magic Bytes
Offset: 2080
4D 69 63 72 6F 73 6F 66 74 20 45 78 63 65 6C 20 35 2E 30 20 57 6F 72 6B 73 68 65 65 74
The XLL format is a legacy spreadsheet add-in file type developed by Microsoft for extending functionality within the Excel application suite. It functions as a dynamic link library designed to provide high-performance mathematical operations, custom worksheet functions, and direct access to internal spreadsheet data structures. While this specific legacy iteration is considered safe for data analysis, it has been largely superseded by newer standards in modern office environments.
Validation Code
How to validate .xll files in Python
Python
def is_xll(file_path: str) -> bool:
"""
Check if file is a valid XLL by magic bytes.
Signature offset: 2080 bytes
"""
signature = bytes([0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x45, 0x78, 0x63, 0x65, 0x6C, 0x20, 0x35, 0x2E, 0x30, 0x20, 0x57, 0x6F, 0x72, 0x6B, 0x73, 0x68, 0x65, 0x65, 0x74])
with open(file_path, "rb") as f:
f.seek(2080)
return f.read(29) == signature
How to validate .xll files in Node.js
Node.js
function isXLL(buffer: Buffer): boolean {
// Signature offset: 2080 bytes
const signature = Buffer.from([0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x45, 0x78, 0x63, 0x65, 0x6C, 0x20, 0x35, 0x2E, 0x30, 0x20, 0x57, 0x6F, 0x72, 0x6B, 0x73, 0x68, 0x65, 0x65, 0x74]);
if (buffer.length < 2109) return false;
return buffer.subarray(2080, 2109).equals(signature);
}
Go
func IsXLL(data []byte) bool {
// Signature offset: 2080 bytes
signature := []byte{0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x45, 0x78, 0x63, 0x65, 0x6C, 0x20, 0x35, 0x2E, 0x30, 0x20, 0x57, 0x6F, 0x72, 0x6B, 0x73, 0x68, 0x65, 0x65, 0x74}
if len(data) < 2109 {
return false
}
return bytes.Equal(data[2080:2109], signature)
}
API Endpoint
GET
/api/v1/xll
curl https://filesignature.org/api/v1/xll