示例#1
0
 public WorksheetReader(SharedStringsReader sharedStrings, string name, int number)
 {
     Data                 = new Dictionary <string, Cell>();
     this.Name            = name;
     this.WorksheetNumber = number;
     this.sharedStrings   = sharedStrings;
 }
        public void Read()
        {
            try
            {
                using (FileStream fs = new FileStream(this.FilePath, FileMode.Open))
                {
                    MemoryStream    ms;
                    WorksheetReader wr;
                    string          name;
                    SevenZipExtractor.ArchiveFile archive = new ArchiveFile(fs, SevenZipFormat.Zip);
                    sharedStrings = new SharedStringsReader();
                    ms            = GetStreamByNamePattern(ref archive, "sharedstrings.xml", false);
                    if (ms != null)
                    {
                        sharedStrings.Read(ms);
                    }

                    int worksheetIndex = 1;
                    while (true)
                    {
                        name = "sheet" + worksheetIndex.ToString() + ".xml";
                        ms   = GetStreamByNamePattern(ref archive, name, false);
                        if (ms != null)
                        {
                            wr = new WorksheetReader(sharedStrings, name, worksheetIndex);
                            wr.Read(ms);
                            this.worksheets.Add(worksheetIndex - 1, wr);
                        }
                        else
                        {
                            break;
                        }

                        worksheetIndex++;
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw e;
            }
        }