2011-09-13 58 views

Trả lời

0

MSDN biết:

((Excel.Worksheet)this.Application.ActiveWorkbook.Sheets[4]).Delete(); 

hoặc

Globals.Sheet1.Delete(); 

Xem ở đây: How to: Delete Worksheets from Workbooks

+0

Khi tôi đang chạy này, người ta ném một lỗi là "biên dịch báo lỗi: CS0103: Tên 'Globals' không tồn tại trong ngữ cảnh hiện tại ". Xin vui lòng làm rõ cho tôi .. Và cũng có thể khi tôi đang chạy trên một thì tôi cũng nhận được lỗi là "CS1061: 'System.Web.HttpApplicationState' không chứa định nghĩa cho 'ActiveWorkbook' và không có phương pháp mở rộng 'ActiveWorkbook' chấp nhận đối số đầu tiên của loại 'System.Web.HttpApplicationState' có thể được tìm thấy (bạn đang thiếu một chỉ thị bằng cách sử dụng hoặc một tham chiếu lắp ráp?) " –

+1

và nếu bạn thử tùy chọn đầu tiên? bạn đã đọc bài viết được liên kết chưa? –

+0

Vui lòng xem liên kết http://stackoverflow.com/questions/7376964/how-to-merge-two-excel-workbook-into-one-workbook-in-c?answertab=active#tab-top Đây là tạo sổ làm việc động bằng cách kết hợp các sổ làm việc hiện có nhưng khi tạo ra nó có 3 tờ mặc định ngoài các trang tính đã hợp nhất. Vì vậy, ở đây tôi cần xóa ba trang tính mặc định đó. Xin hãy giúp tôi ra về điều này ... –

3

Bạn có thể gọi .Delete() method, như thế:

Globals.Sheet1.Delete(); 

Update, theo nhận xét của bạn:

Excel._Worksheet ws = (Excel._Worksheet)app.Workbooks[i].Worksheets[j]; 
ws.Delete(); 
+0

Khi tôi đang chạy này, nó là ném một lỗi như "Thông báo lỗi biên dịch: CS0103: Tên 'Globals' không tồn tại trong bối cảnh hiện tại". Xin vui lòng làm rõ cho tôi ... –

+0

@Tripati Subudhi 'Globals' đề cập đến sổ làm việc của bạn, và Sheet1 - cho bảng tính đầu tiên. Bạn nên thêm các biến của riêng bạn để làm cho mã này hoạt động. Cũng thấy MSDN. – VMAtm

+0

Vui lòng xem liên kết http://stackoverflow.com/questions/7376964/how-to-merge-two-excel-workbook-into-one-workbook-in-c?answerertab = active # tab-top Ở đây nó sẽ tạo ra sổ làm việc động bằng cách hợp nhất các sổ làm việc hiện có nhưng khi nó tạo ra nó có 3 tờ mặc định ngoài các trang tính đã hợp nhất. Vì vậy, ở đây tôi cần xóa ba trang tính mặc định đó. –

0

Nhắc lại ví dụ của bạn (How to merge two excel workbook into one workbook in c#?), nơi ứng dụng là biến của bạn thuộc loại Excel.Application, bạn nên viết một cái gì đó như thế này:

for (int i = 1; i <= 3; i++) 
    ((Excel.Worksheet)app.ActiveWorkbook.Sheets[1]).Delete(); 

PS: có vẻ như với tôi rằng bộ sưu tập Bảng tính được lập chỉ mục bắt đầu từ 1, không phải 0, nhưng tôi không chắc chắn và không thể kiểm tra ngay bây giờ. Nếu nó không hoạt động thử với giá trị cho tôi từ 0 đến 2.

2

Tôi hy vọng mã này sẽ giúp bạn:

app.DisplayAlerts = false; 
worksheet.Delete(); 
app.Displayalerts = true; 

nơi ứng dụng là XlsApplication của bạn.

0
Dim s1 as Excel.Worksheet 
s1 = wb.Sheets("Sheet1") 
s1.Visible = Excel.XlSheetVisibility.xlSheetVisible 
s1.Delete() 

Bạn cần phải thay đổi tầm nhìn vì bạn không thể xóa một sheet với khả năng hiển thị thiết lập để Excel.XlSheetVisibility.xlSheetVeryHidden

Các vấn đề liên quan