2011-05-19 19 views
6

How can columns be set to 'autosize' in Excel documents created with NPOI? के अनुसार मैं ने वैसा ही किया:एक्सेल शीट कॉलम में "ऑटोसाइज" कैसे सेट करें? (NPOI)

foreach (DataColumn column in dataTable.Columns) 
{ 
    int rowIndex = 0; 
    foreach (DataRow row in dataTable.Rows) 
    { 
     HSSFRow dataRow = sheet.CreateRow(rowIndex); 
     dataRow.CreateCell(column.Ordinal).SetCellValue(row[column].ToString()); 
     rowIndex++; 
    } 
     sheet.AutoSizeColumn(column.Ordinal); 
} 

लेकिन यह काम नहीं करता। सही कैसे करें?

उत्तर

10

यहाँ कुछ कोड है कि मेरे लिए काम कर रहा है, अपने छोरों उपयोग कर रहा है: यदि आप इसके लिए तो हम डेटा आप बाहर धकेलने रहे हैं की तरह में देखने की जरूरत है काम नहीं करता है

HSSFWorkbook spreadsheet = new HSSFWorkbook(); 

    DataSet results = GetSalesDataFromDatabase(); 

    //here, we must insert at least one sheet to the workbook. otherwise, Excel will say 'data lost in file' 
    HSSFSheet sheet1 = spreadsheet.CreateSheet("Sheet1"); 

    foreach (DataColumn column in results.Tables[0].Columns) 
    { 
     int rowIndex = 0; 
     foreach (DataRow row in results.Tables[0].Rows) 
     { 
      HSSFRow dataRow = sheet1.CreateRow(rowIndex); 
      dataRow.CreateCell(column.Ordinal).SetCellValue(row[column].ToString()); 
      rowIndex++; 
     } 
     sheet1.AutoSizeColumn(column.Ordinal); 
    } 

    //Write the stream data of workbook to the file 'test.xls' in the temporary directory 
    FileStream file = new FileStream(Path.Combine(Path.GetTempPath(), "test.xls") , FileMode.Create); 
    spreadsheet.Write(file); 
    file.Close(); 

, देखें यदि कोई अंतर है जो वहां एक अंतर बनाता है। (मुझे लगता है कि हमारे पास संस्करण विसंगति या ऐसा कुछ भी नहीं है)।

+0

मैं आपके उत्तर से नहीं देख सकता कि समस्या और समाधान क्या था। आपने कोड में मौजूद कोड जोड़ा नहीं है, लेकिन वह कोड ऑटोसाइजिंग के लिए अप्रासंगिक लगता है। – buffjape

+0

हां, यह उदाहरण कोड का बिंदु है। इसलिए कोड नमूना के बाद शब्द। – Yellowfog

+0

विशेष रूप से, आपके द्वारा हल की गई समस्या क्या थी? कोड की कौन सी पंक्ति इसे तय करती है? – buffjape

1

येलोफोग द्वारा उत्तर में अतिरिक्त अतिरिक्त जोड़ने के लिए। मैंने पाया कि मुझे शीट में सभी डेटा जोड़ना था, फिर कॉलम के माध्यम से फिर से चालू करना, ऑटोसाइज कॉलम (आईडीएक्स) को सही तरीके से काम करने के लिए सेट करना था।

संबंधित मुद्दे