2012-06-27 35 views
17

Tôi có một khung dữ liệu trong R muốn viết thành excel (hoặc csv) và xuất ở định dạng đẹp (ví dụ: với đường viền, tiêu đề cho bảng, không bắt đầu từ ô A1).Viết từ R vào mẫu trong excel trong khi vẫn giữ nguyên định dạng

Hiện tại tôi sử dụng hàm write.table để viết các khung dữ liệu của tôi vào tệp csv, sau đó sao chép và dán dữ liệu vào tài liệu ở excel nơi tôi có sẵn bảng định dạng mẫu.

Đây không phải là một vấn đề lớn khi nó chỉ là một khung dữ liệu, nhưng bây giờ tôi muốn làm điều đó cho nhiều dataframes và có trên nhiều tab trong excel.

Có cách nào để tôi có thể tự động sao chép các khung dữ liệu của mình vào các ô cụ thể trong bảng tính excel hiện có với tất cả định dạng được đặt chính xác không?

+1

Tệp CSV chỉ là văn bản. Bạn không thể bao gồm bất kỳ định dạng nào. Bạn có thể sử dụng [R (D) COM] (http://cran.r-project.org/contrib/extra/dcom/) để viết và định dạng tệp Excel từ R. –

+1

Bằng cách giải thích, tôi đã bỏ phiếu cho bạn câu hỏi bởi vì "có thể" được trả lời một cách trivially với Google. Một tìm kiếm đơn giản sẽ dẫn bạn đến các gói ** XLConnect ** và ** xlsx **, cả hai đều có thể đọc/ghi vào các tệp Excel. – joran

+2

@joran Câu hỏi có chứa một phần quan trọng: giữ định dạng của mẫu gốc. Hãy thử dùng ... –

Trả lời

16

Như Joran đã nói, bạn có gói XLConnect. Đọc số documentation hoặc vignette của gói đó một cách cẩn thận để biết chính xác những gì có thể.

Sử dụng XLConnect bạn thường ghi đè lên phong cách di động trừ khi bạn thiết lập các hành động phong cách là "none" bằng

setStyleAction(wb,XLC$"STYLE_ACTION.NONE") 

Để thiết lập bạn trên con đường bên phải, một ví dụ nhỏ:

require(XLConnect) 
wb <- loadWorkbook("test.xlsx", create=TRUE) 
setStyleAction(wb,XLC$"STYLE_ACTION.NONE") 

Data <- data.frame(
    a = 1:10, 
    b = letters[1:10] 
) 

writeWorksheet(wb,Data,"aSheet",startRow=1,startCol=1,header=TRUE) 

saveWorkbook(wb) 

Trước

enter image description here

Sau

enter image description here


EDIT: Theo ghi nhận của Dirk Eddelbuettel, bạn có thể làm tương tự bằng cách sử dụng gói xlsx. Cá nhân tôi sử dụng XLConnect vì nó có thể xử lý cả xls và xlsx, và dường như ổn định hơn nhiều so với bất kỳ gói cũ nào tôi đã sử dụng để thao tác các tệp EXCEL. Tôi chưa sử dụng gói xlsx. Bạn có thể xem CRAN page on Data Import/Export để biết những gì có sẵn.

+2

FWIW gói "xslx" cũng vậy. –

+0

Cảm ơn joris, nhiều đánh giá cao! – user1165199

+0

@DirkEddelbuettel Cảm ơn bạn đã nhắc nhở. –

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