Có ai có bất kỳ ý tưởng làm thế nào để in một tập tin excel lập trình bằng cách sử dụng C# và Excel Interop? Nếu vậy, bạn có thể vui lòng cung cấp mã không?In Excel bằng cách sử dụng Interop
13
A
Trả lời
20
Để in, bạn có thể sử dụng phương thức Worksheet.PrintOut(). Bạn có thể bỏ qua bất kỳ hoặc tất cả các đối số tùy chọn bằng cách đi qua trong Type.Missing. Nếu bạn bỏ qua tất cả chúng, nó sẽ mặc định in ra một bản sao từ máy in hoạt động của bạn. Nhưng bạn có thể sử dụng các đối số để đặt số lượng bản sao để in, đối chiếu, v.v. Xem trợ giúp về phương pháp Worksheet.PrintOut() để biết thêm.
Ví dụ họ hiển thị trong tập tin trợ giúp là:
private void PrintToFile()
{
// Make sure the worksheet has some data before printing.
this.Range["A1", missing].Value2 = "123";
this.PrintOut(1, 2, 1, false, missing, true, false, missing);
}
Nhưng trừ khi bạn cần thay đổi các thiết lập mặc định, bạn chỉ có thể vượt qua trong Type.Missing cho tất cả các đối số. Dưới đây là ví dụ sử dụng tự động hóa để mở Sổ làm việc Excel, in trang đầu tiên và sau đó tắt:
void PrintMyExcelFile()
{
Excel.Application excelApp = new Excel.Application();
// Open the Workbook:
Excel.Workbook wb = excelApp.Workbooks.Open(
@"C:\My Documents\Book1.xls",
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);
// Get the first worksheet.
// (Excel uses base 1 indexing, not base 0.)
Excel.Worksheet ws = (Excel.Worksheet)wb.Worksheets[1];
// Print out 1 copy to the default printer:
ws.PrintOut(
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing);
// Cleanup:
GC.Collect();
GC.WaitForPendingFinalizers();
Marshal.FinalReleaseComObject(ws);
wb.Close(false, Type.Missing, Type.Missing);
Marshal.FinalReleaseComObject(wb);
excelApp.Quit();
Marshal.FinalReleaseComObject(excelApp);
}
Hy vọng điều này sẽ hữu ích!
Mike
1
cải thiện quan trọng là mã cho chọn máy in, ví dụ:
var printers = System.Drawing.Printing.PrinterSettings.InstalledPrinters;
int printerIndex = 0;
foreach(String s in printers)
{
if (s.Equals("Name of Printer"))
{
break;
}
printerIndex++;
}
xlWorkBook.PrintOut(Type.Missing, Type.Missing, Type.Missing, Type.Missing,printers[printerIndex], Type.Missing, Type.Missing, Type.Missing);
Các vấn đề liên quan
- 1. Lưu Bảng tính Excel bằng cách sử dụng Interop C#
- 2. Lưu XLS Sử dụng Interop Excel
- 3. Làm thế nào để tải một Excel Addin bằng cách sử dụng Interop
- 4. excel interop thay thế
- 5. C# và Excel interop
- 6. viết văn bản dài trong sổ làm việc excel bằng cách sử dụng interop ném lỗi?
- 7. Microsoft Interop: Tên Cột Excel
- 8. nâng cao sự kiện vb6 bằng cách sử dụng interop
- 9. Làm cách nào tôi có thể nhận Phạm vi các hàng được lọc bằng cách sử dụng Excel Interop?
- 10. Chuyển đổi ngày Excel bằng cách sử dụng PHP Excel
- 11. Làm thế nào để lưu/ghi đè tệp Excel hiện có bằng Excel Interop - C#
- 12. Điều gây phiền nhiễu/kỳ lạ nhất đã xảy ra với bạn bằng cách sử dụng Excel Interop
- 13. Excel COM Interop - tlbimp vs primary WrapperTool
- 14. Đường lưới trong excel qua interop
- 15. Sử dụng đối tượng Wrapper để đúng dọn dẹp excel interop đối tượng
- 16. Cách nhanh nhất để ghi các ô vào Excel bằng Office Interop?
- 17. Excel Interop - Hiệu quả và hiệu suất
- 18. Cách in một số lớn hơn 7 chữ số bằng cách sử dụng poi (2,5) từ bảng excel trong bảng điều khiển bằng cách sử dụng java
- 19. Sử dụng chức năng SQL "IN" trong Excel
- 20. Làm thế nào để tiêm mã VBA vào Excel .xlsm mà không cần sử dụng Interop?
- 21. Sao chép Bảng Excel bằng cách sử dụng Apache POI
- 22. Đọc từ excel bằng cách sử dụng oledbcommand
- 23. Tạo tệp Excel bằng cách sử dụng vbscripts
- 24. Sửa đổi excel hiện có bằng cách sử dụng jxl
- 25. Đặt thời gian trong Excel bằng cách sử dụng POI
- 26. Tạo biểu đồ excel bằng cách sử dụng Apache POI
- 27. C# Excel interop, đặt ngắt dòng trong văn bản của ô trong Excel
- 28. Cách khôi phục cửa sổ mà không lấy nét bằng cách sử dụng WPF (hoặc interop)
- 29. C# Excel interop: Ngoại lệ từ HRESULT (DISP_E_BADINDEX)
- 30. Trong C#, làm cách nào để sử dụng Excel Interop để tăng tốc ghi nhiều giá trị ô
cảm ơn bạn rất nhiều !!! điều này rất hữu ích! – yeahumok
Tuyệt vời, vui vì tôi có thể giúp. :-) –
bạn sẽ không biết làm thế nào để hiển thị một cuộc đối thoại in thay vì ngay lập tức in ấn tài liệu ... sẽ ya? – yeahumok