use Win32::OLE qw(CP_UTF8); Win32::OLE->Option(CP=>CP_UTF8); use Win32::OLE::Const 'Microsoft Word'; use Spreadsheet::WriteExcel; my $word = Win32::OLE->new('Word.Application', 'Quit'); my $doc = $word->Documents->Open($file); my $workbook = Spreadsheet::WriteExcel->new($out_file); my $worksheet = $workbook->addworksheet(); my $row = 0; my $col = 0; for(my $i = 1; $i <= $doc->Words->Count; $i++) { if($doc->Words->Item($i)->HighlightColorIndex > 0) { $worksheet->write($row++, $col, $doc->Words->Item($i)->Text); } }