Форматы BIFF являются открытой спецификацией Microsoft.(Обратите внимание, что я говорю, спецификация не стандартная).Прочитайте this , чтобы получить представление о том, что происходит.
Тогда те BIFF, которые вы видите, соответствуют некоторым форматам Excel.BIFF5 - это XLS из Excel 5.0 и 95, BIFF8 - это XLS из Excel 97 - 2003, BIFF12 - это XLSB из Excel 2003, обратите внимание, что Excel 2007 также может их создавать (я полагаю, Excel 2010 тоже).Существует некоторая документация здесь , а также здесь (из OpenOffice), которая может помочь вам разобраться в бинарном файле ...
В любом случае, есть некоторые работыбыло сделано в прошлом для анализа этих документов в C ++, Java, VB и на ваш вкус в C #.Например, это BIFF12 Reader , проект NExcel и ExcelLibrary для цитирования нескольких.
В частности NExcel позволит вам передать потоккоторый вы можете создать из данных буфера обмена и затем запросить NExcel, чтобы получить данные.Если вы собираетесь взять исходный код, то я думаю, что ExcelLibrary гораздо более читабелен.
Вы можете получить поток следующим образом:
var dataobject = System.Windows.Forms.Clipboard.GetDataObject();
var stream = (System.IO.Stream)dataobject.GetData(format);
И читать из потока поток с NExcel будетчто-то вроде этого:
var wb = getWorkbook(stream);
var sheet = wb.Sheets[0];
var somedata = sheet.getCell(0, 0).Contents;
Полагаю, что настоящие библиотеки Office от Microsoft тоже подойдут.
Я знаю, что это не вся история, пожалуйста, поделитесь, как идут дела.Попробую, если у меня будет шанс.