public static void Run()
        {
            // ExStart:1
            //directories
            string SourceDir = RunExamples.Get_SourceDirectory();
            string outputDir = RunExamples.Get_OutputDirectory();

            Workbook workbook = new Workbook(SourceDir + "EmbeddedMolSample.xlsx");
            var      index    = 1;

            foreach (Worksheet sheet in workbook.Worksheets)
            {
                OleObjectCollection oles = sheet.OleObjects;
                foreach (var ole in oles)
                {
                    string     fileName = outputDir + "OleObject" + index + ".mol ";
                    FileStream fs       = File.Create(fileName);
                    fs.Write(ole.ObjectData, 0, ole.ObjectData.Length);
                    fs.Close();
                    index++;
                }
            }
            // ExEnd:1

            Console.WriteLine("ExtractEmbeddedMolFile executed successfully.");
        }
Ejemplo n.º 2
0
        private void ParseXls(ref FileObject fo, string filePath)
        {
            Workbook wb = new Workbook(filePath);

            Aspose.Cells.Properties.BuiltInDocumentPropertyCollection dp = wb.BuiltInDocumentProperties;
            WorksheetCollection wsc = wb.Worksheets;

            fo.pageCount = wsc.Count;

            int  NoOfImages       = 0;
            int  NoOfEmbeddedDocs = 0;
            bool isProtected      = false;

            foreach (Worksheet ws in wsc)
            {
                OleObjectCollection oles = ws.OleObjects;
                if (ws.IsProtected)
                {
                    isProtected = true;
                }
                foreach (OleObject ole in oles)
                {
                    switch (ole.FileFormatType)
                    {
                    case FileFormatType.Doc:
                    case FileFormatType.Xlsm:
                    case FileFormatType.Docx:
                    case FileFormatType.Xlsx:
                    case FileFormatType.Ppt:
                    case FileFormatType.Pdf:
                    case FileFormatType.CSV:
                    case FileFormatType.VSD:
                    case FileFormatType.VSDX:
                    case FileFormatType.Html:
                    case FileFormatType.XML:
                        NoOfEmbeddedDocs++;
                        break;

                    case FileFormatType.BMP:
                    case FileFormatType.TIFF:
                        NoOfImages++;
                        break;

                    default:
                        NoOfImages++;
                        break;
                    }
                }
            }

            fo.embeddedDocsCount = NoOfEmbeddedDocs;
            fo.imageCount        = NoOfImages;
            fo.hasPassword       = isProtected;

            string tmpFolderToExtract = tmpFolder + "\\" + Guid.NewGuid();

            Directory.CreateDirectory(tmpFolderToExtract);
            string tmpTextFile = tmpFolderToExtract + "\\" + "tmpTextexport.txt";

            byte[]         workbookData = new byte[0];
            TxtSaveOptions opts         = new TxtSaveOptions();

            opts.Separator = ' ';

            for (int idx = 0; idx < wb.Worksheets.Count; idx++)
            {
                MemoryStream ms = new MemoryStream();
                wb.Worksheets.ActiveSheetIndex = idx;
                wb.Save(ms, opts);
                ms.Position = 0;
                byte[] sheetData     = ms.ToArray();
                byte[] combinedArray = new byte[workbookData.Length + sheetData.Length];
                Array.Copy(workbookData, 0, combinedArray, 0, workbookData.Length);
                Array.Copy(sheetData, 0, combinedArray, workbookData.Length, sheetData.Length);
                workbookData = combinedArray;
            }

            File.WriteAllBytes(tmpTextFile, workbookData);

            fo.wordCount      = GetWordCount(tmpTextFile);
            fo.characterCount = GetCharCount(tmpTextFile);
            if (File.Exists(tmpTextFile))
            {
                File.Delete(tmpTextFile);
            }
            if (Directory.Exists(tmpFolderToExtract))
            {
                Directory.Delete(tmpFolderToExtract);
            }
        }