Exemple #1
0
 internal Range(int startRow, int startColumn, int endRow, int endColumn, Worksheet parent)
 {
     StartRow = startRow;
     EndRow = endRow;
     StartColumn = startColumn;
     EndColumn = endColumn;
     Parent = parent;
 }
Exemple #2
0
 internal Cell(int row, int column, Worksheet parent)
 {
     this.row = row;
     this.column = column;
     this.Parent = parent;
 }
Exemple #3
0
        public IWorksheet CloneWorksheet(IWorksheet worksheet)
        {
            var item = worksheet as Worksheet;
            if (item == null)
            {
                throw new InvalidOperationException("Implementation of this method depends on another Office Interop wrapper.");
            }

            var index = worksheets.IndexOf(item);
            if (index == -1)
            {
                throw new InvalidOperationException("Specified worksheet does not belong to this workbook.");
            }

            var _worksheet = item._worksheet;
            _worksheet.Copy(After: _worksheet);
            var clone = new Worksheet(ExcelApplication, this, _sheets[index + 2], worksheetDisposeCallback, item.DisplayGridlines);
            worksheets.Insert(index + 1, clone);
            return clone;
        }
Exemple #4
0
 public IWorksheet NewWorksheet()
 {
     AssertNotDisposed();
     var _worksheet = _sheets.Add(After: worksheets[worksheets.Count - 1]._worksheet);
     var worksheet = new Worksheet(ExcelApplication, this, _worksheet, worksheetDisposeCallback, false);
     worksheets.Add(worksheet);
     return worksheet;
 }
Exemple #5
0
 internal RowRange(int startRow, int endRow, Worksheet parent)
 {
     StartRow = startRow;
     EndRow = endRow;
     Parent = parent;
 }
Exemple #6
0
        static void Main(string[] args)
        {
            Application app = new Application();

            try
            {
                FileInfo fiSource = new FileInfo(args[0]);
                FileInfo fiDest   = new FileInfo(args[1]);
                Workbook wb       = app.Workbooks.Open(fiSource.FullName,
                                                       Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                                                       Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                                                       Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                                                       Type.Missing, Type.Missing);
                Worksheet sheet = (Worksheet)wb.Sheets[1];

                Dictionary <string, DateTime> hashNewest = new Dictionary <string, DateTime>();
                for (int iRow = 1; iRow < (double)sheet.Cells.Height; ++iRow)
                {
                    object oID = sheet.get_Range("A" + (iRow + 1), Type.Missing).get_Value(Type.Missing);
                    if (oID == null || oID.ToString().Trim().Length <= 0)
                    {
                        break;
                    }

                    object   oName   = sheet.get_Range("B" + (iRow + 1), Type.Missing).get_Value(Type.Missing);
                    string   strName = "" + oName;
                    object   oDate   = sheet.get_Range("C" + (iRow + 1), Type.Missing).get_Value(Type.Missing);
                    DateTime dt      = Convert.ToDateTime(oDate);
                    if (!hashNewest.ContainsKey(strName))
                    {
                        hashNewest.Add(strName, dt);
                    }
                    else if (hashNewest[strName].CompareTo(dt) < 0)
                    {
                        hashNewest[strName] = dt;
                    }
                }

                for (int iRow = 1; iRow < (double)sheet.Cells.Height; ++iRow)
                {
                    object oID = sheet.get_Range("A" + (iRow + 1), Type.Missing).get_Value(Type.Missing);
                    if (oID == null || oID.ToString().Trim().Length <= 0)
                    {
                        break;
                    }

                    object   oName   = sheet.get_Range("B" + (iRow + 1), Type.Missing).get_Value(Type.Missing);
                    string   strName = "" + oName;
                    object   oDate   = sheet.get_Range("C" + (iRow + 1), Type.Missing).get_Value(Type.Missing);
                    DateTime dt      = Convert.ToDateTime(oDate);
                    if (!hashNewest[strName].Equals(dt))
                    {
                        sheet.get_Range(
                            string.Format("A{0}:D{0}", iRow + 1),
                            Type.Missing
                            ).Delete(XlDeleteShiftDirection.xlShiftUp);
                        --iRow;
                    }
                }

                File.Delete(fiDest.FullName);
                wb.SaveAs(fiDest.FullName, Type.Missing, Type.Missing, Type.Missing,
                          Type.Missing, Type.Missing, XlSaveAsAccessMode.xlExclusive,
                          Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);

                wb.Close(false, Type.Missing, Type.Missing);
            }
            finally
            {
                app.Workbooks.Close();
                System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
            }
            Console.WriteLine("Hit any key to continue");
            Console.ReadKey();
        }