internal Range(int startRow, int startColumn, int endRow, int endColumn, Worksheet parent) { StartRow = startRow; EndRow = endRow; StartColumn = startColumn; EndColumn = endColumn; Parent = parent; }
internal Cell(int row, int column, Worksheet parent) { this.row = row; this.column = column; this.Parent = parent; }
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; }
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; }
internal RowRange(int startRow, int endRow, Worksheet parent) { StartRow = startRow; EndRow = endRow; Parent = parent; }
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(); }