2010-09-20 38 views
6

Tôi làm việc trên dự án python (django). Tôi viết mã csv như sau,cách in đậm dữ liệu csv trong excel?

response = HttpResponse(mimetype='text/csv')  
response['Content-Disposition'] = 'attachment; filename=DueDateWiseSearch.csv'  
writer = csv.writer(response)  
writer.writerow(['Infant Name','Mother Name','Mother Address', 
    'Next Vaccine Dose','Due date','Coments']) 

hàng này là tiêu đề và tôi cần in đậm tất cả văn bản tiêu đề. Tôi tải xuống csv dưới dạng tệp "Excel".

Tôi có thể làm như thế nào? Hãy giúp tôi!

+3

Điều gì khiến bạn nghĩ rằng có thể cung cấp trang trí ngoài dữ liệu trong tệp CSV? Bạn đã thấy điều này ở đâu? –

Trả lời

12

Không có cách nào để thực hiện điều đó trong CSV. Bạn có thể tất cả mũ đầu ra, hoặc bạn có thể sử dụng một định dạng khác hỗ trợ kiểu văn bản.

1

Không có cách nào để làm điều đó với CSV mà tôi biết, nhưng bạn có thể xem xét sử dụng cũ SYLK format hoặc Office XML format.

+0

cảm ơn! Vì đã trả lời nhanh. –

4

CSV chỉ chứa dữ liệu, nó không chứa bất kỳ thông tin định dạng nào. Nếu bạn cần định dạng dữ liệu của mình, tôi khuyên bạn nên tạo tệp XLS thay vì tệp CSV. Hãy thử sử dụng một cái gì đó như xlwt.

+0

-1 pyexcelerator là từ bỏ. Sử dụng xlwt thay thế. –

+0

cảm ơn! Vì câu trả lời nhanh chóng của bạn. –

+0

@John, cảm ơn vì đã chỉ ra điều đó. Tôi đã không sử dụng pyexcelerator trước, hoặc có một nhu cầu để xuất XLS. Nó chỉ xuất hiện đầu tiên trong google. Tôi sẽ thay đổi câu trả lời của mình để chính xác hơn. – Tauren

1

Phương án thay thế hiện đại hơn là xlsxcessive để xuất tệp Excelx + .xlsx. Đây là một ví dụ làm cho hàng tiêu đề lớn hơn một chút và in đậm. Nó thực sự không quá khó, và tài liệu khá tốt.

from xlsxcessive.xlsx import Workbook, save 

#Create some fake test data 
import urllib, random 
words = [x.strip().title() for x in urllib.urlopen('http://dictionary-thesaurus.com/wordlists/Nouns%285,449%29.txt').readlines()] 
names = [] 
for i in range(25): 
    address = '%s %s %s' % (random.randint(0, 100000), random.choice(words), random.choice(['Ave', 'St', 'Blvd', 'Ct', 'Ln'])) 
    names.append((random.choice(words), random.choice(words), address)) 

#Create the workbook and sheet 
wb = Workbook() 
s1 = wb.new_sheet('Sheet 1') 

#Create the bold style for the header row 
headerfmt = wb.stylesheet.new_format() 
headerfmt.font(size=14, bold=True) 

#Write out the header row 
header = ['Infant Name','Mother Name','Mother Address',] 
for col, label in enumerate(header): 
    s1.cell(coords=(0,col), value=label, format=headerfmt) 

#Write out the data  
for rownumber, rowvalues in enumerate(names, start=1): 
    for col, value in enumerate(rowvalues): 
     s1.cell(coords=(rownumber, col), value=value) 

save(wb, 'stackoverflow_problem.xlsx') 
Các vấn đề liên quan