Файл .xlsx на самом деле является просто архивом сжатия (zip-файл), поэтому, если вы действительно хотите добавить скрытый файл, вы можете просто добавить файл .xml в архив.Таким образом, Excel даже не узнает, что это было там.
Переименуйте файл .xlsx в .zip, распакуйте его, добавьте свой файл, затем выберите содержимое файла .zip и повторно заархивируйте их.Переименуйте в .xlsx, и у вас там будет скрытый файл .xml.(ПРИМЕЧАНИЕ: не заархивируйте папку верхнего уровня, только ее содержимое)
Вы можете сделать это в C #, используя zip-библиотеку, например SharpZipLib: http://www.sharpdevelop.net/OpenSource/SharpZipLib/
ОБНОВЛЕНИЕ: Этот «скрытый» файл не будет сохранен, если пользователь сохранит файл из Excel.Лучшая идея, которую я могу придумать для этого сценария, - вызвать код как часть макроса VBA, встроенного в лист.
Эта ссылка содержит полезную информацию о манипулировании частями пакета Office: http://msdn.microsoft.com/en-us/library/aa982683.aspx
core.xml и app.xml (в папке docProps) содержат свойства документа и могут быть хорошим местом для хранения дополнительной информации XML.