2016-09-27 6 views
1

私はこのコードを使用しています。Excelで大胆なテキストを書く方法C#win forms

エクスポート後に見栄えの良いデザインのExcelシートを作成します。 他の方法で修正しましたが、この方法で修正されたExcelシートに使用します。

StreamWriter wr = new StreamWriter(@"D:\\test.xls"); 


foreach (string sHeader in Header) 
{ 
     wr.Write(sHeader); 
     wr.WriteLine(); 
} 
wr.Write(""); 
wr.WriteLine(); 

for (int i = 0; i < Dt.Columns.Count; i++) 
{ 
     wr.Write(Dt.Columns[i].ToString().ToUpper() + "\t"); 
} 

wr.WriteLine(); 

//write rows to excel file 
for (int i = 0; i < (Dt.Rows.Count); i++) 
{ 
    for (int j = 0; j < Dt.Columns.Count; j++) 
    { 
      if (Dt.Rows[i][j] != null) 
      { 
       wr.Write(Convert.ToString(Dt.Rows[i][j]) + "\t"); 
      } 
      else 
      { 
       wr.Write("\t"); 
      } 
     } 
     //go to next line 
     wr.WriteLine(); 
} 
//close file 
wr.Close(); 
+0

ない可能 "Microsoft.Office.Interop.Excel.ApplicationClassを使用して、" この を試してみてください。そのためには、本当のExcelファイルを作成する必要があります。ところで、私は "Excelのたわごと"が好きです:) – Pikoh

答えて

1

この参照を追加し、csvファイルを使用して

try 
    { 
     SaveFileDialog sfd = new SaveFileDialog(); 
     sfd.FileName = "Total Expiry Inventories Data "; 
     sfd.DefaultExt = "xls"; 
     sfd.Filter = "xlsx files(*.xlsx)|*.xlsx"; 
     if (sfd.ShowDialog() != System.Windows.Forms.DialogResult.OK) 
     { 
      return; 
     } 

     Excel.Application ExcelApp = new Excel.Application(); 
     Excel.Workbook workbook = ExcelApp.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet); 
     Excel.Worksheet worksheet1 = (Excel.Worksheet)workbook.Worksheets[1]; 
     worksheet1.Name = "Expiry Data"; 
     for (int i = 1; i < GrdViewData.Columns.Count + 1; i++) 
     { 
      worksheet1.Cells[1, i] = GrdViewData.Columns[i - 1].HeaderText; 
      worksheet1.Cells[1, i].Font.Bold = true; 


     } 
     for (int i = 0; i < GrdViewData.Rows.Count; i++) 
     { 
      for (int j = 0; j < GrdViewData.Columns.Count; j++) 
      { 
       worksheet1.Cells[i + 2, j + 1] = GrdViewData.Rows[i].Cells[j].Value.ToString(); 
      } 
     } 
     worksheet1.Rows.Font.Size = 12; 
     // Excel.Range range_Consolidated = worksheet1.Rows.get_Range("a1", "d1"); 
     // range_Consolidated.Font.Bold = true; 

     // range_Consolidated.Font.Italic = true; 

     string ExcelFileName = sfd.FileName; 
     workbook.SaveAs(ExcelFileName); 
     workbook.Close(false, ExcelFileName, Missing.Value); 
     ExcelApp.Quit(); 

     ExcelApp = null; 
     GC.Collect(); 
     GC.WaitForPendingFinalizers(); 
     MessageBox.Show("File Saved! you can open it from\n '" + sfd.FileName + "'", "EXPORT", MessageBoxButtons.OK, MessageBoxIcon.Information); 
    } 

    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 
    finally 
    { 
    } 
+0

これは、プロジェクトへの参照を追加せずに動作すると思いますか? – Pikoh

+0

それぞれの参照を追加する必要があります。 –

+0

まあ...あなたはあなたの答えにそれを追加する必要があります、ちょうどコードの束を投げるだけでは不十分です:) – Pikoh

関連する問題