ユーザーが .csv としてマークされた Excel ファイルを誤ってアップロードしたかどうかを検出したいと考えています。これを可能にする xls ファイルの標準バイナリ フットプリントはありますか?
1 に答える
Python で Excel ファイルを読み取ることができます。
http://scienceoss.com/read-excel-files-from-python/
Perl で Excel ファイルを読み取ることができます。
http://www.thegeekstuff.com/2011/12/perl-and-excel/
PerlでExcelファイルを読むにはどうすればよいですか?
Unix/Linux ユーティリティfile
は、Excel およびその他の多数のファイルを認識できます。
出力例:
file ~/Download/*xls
/home/paul/Downloads/REDACTED1.xls: Composite Document File V2 Document, Little Endian, Os: Windows, Version 5.1, Code page: 1252, Author: Someones Name, Last Saved By: Somebody Else, Name of Creating Application: Microsoft Excel, Create Time/Date: Wed Jan 27 00:39:46 2010, Last Saved Time/Date: Sun Feb 28 13:55:47 2010, Security: 0
/home/paul/Downloads/REDACTED2.xls: Composite Document File V2 Document, Little Endian, Os: Windows, Version 1.0, Code page: -535, Author: Paul , Last Saved By: Paul , Revision Number: 3, Total Editing Time: 18:09, Create Time/Date: Wed Oct 26 23:45:51 2011, Last Saved Time/Date: Thu Oct 27 00:34:42 2011
file
呼び出して結果を返すライブラリを簡単に構築できます。
それがどのように行われるかを確認するfile
ために、ソース コードが利用可能であり、file
ユーティリティには独自の構成ファイルと、マジック バイトおよび文字列情報の構成ディレクトリさえあります。
apt-get source file
./file-5.11/magic/MagDir は、さまざまな形式で検索するためのマジック バイトと文字列でいっぱいのディレクトリですが、自分の Excel ファイルのスキャンで見られる「複合ドキュメント ファイル」はそこで宣言されていませんでした。このディレクトリには、Excel on Mac、Word、およびいくつかの古い msdos 形式の定義ファイルがあります。
cd ./file-5.11; grep 'Composite Document File' */*
収量:
src/cdf.c: * Parse Composite Document Files, the format used in Microsoft Office
src/cdf.c: * N.B. This is the "Composite Document File" format, and not the
src/cdf.h: * Parse Composite Document Files, the format used in Microsoft Office
src/cdf.h: * N.B. This is the "Composite Document File" format, and not the
src/readcdf.c: if (file_printf(ms, "Composite Document File V2 Document")
src/readcdf.c: if (file_printf(ms, "Composite Document File V2 Document")
file
これを調査して、ユーティリティが一部の Microsoft Excel 形式を どのように検出できるかを判断することをお勧めします。