DataTable 컨텐트를 Excel 테이블로 내보내는 두 가지 방법

8645 단어 Datatable
메서드1: StreamWriter의 Write 메서드를 사용하여 Excel 파일에 문자열을 쓰기 위해 DataTable 셀 컨텐트 결합 문자열을 반복합니다.
이런 방법은 매우 실현되고 간단하다.문자열을 결합하면 각 셀 사이에'\t'(Tab 키와 같은 자리 표시자)가 추가되고 각 행 사이에'\r'(줄 바꿈 표시)가 추가됩니다.
하지만 이 방법으로는 Excel 셀 스타일을 설정할 수 없습니다.
1. GetSavePath () 방법을 정의하고 SaveFileDialog 컨트롤을 사용하여 Excel 파일을 저장할 경로를 선택합니다.
private string GetSavePath()
{
    using (SaveFileDialog savePath = new SaveFileDialog())
    {
        savePath.Title = " ";
        savePath.Filter = "Excel 97-2003|*.xls";
        savePath.RestoreDirectory = true; // 
        savePath.FileName = " ";
        if (savePath.ShowDialog() == DialogResult.OK)
        {
            return savePath.FileName; // Excel 
        }
        return "Cancel";
    }
}

2. DataTable 컨텐트를 문자열로 변환하는 GetSWstr () 방법을 정의합니다.
private string GetSWstr(DataTable table2)
{
    StringBuilder strHead = new StringBuilder ();
    // 
    for (int i = 0; i < table2.Columns.Count; i++)
    {
        strHead.Append(table2.Columns[i].Caption.Trim() + '\t');
    }
    strHead.Append("\r
"); // for (int i = 0; i < table2.Rows.Count; i++) { for (int j = 0; j < table2.Columns.Count; j++) { strHead.Append(table2.Rows[i][j].ToString().Trim() + '\t'); } strHead.Append("\r
"); } return strHead.ToString(); }

3. Excel 파일에 쓰기 위한 WriteToExcel () 방법 정의
public string WriteToExcel(String str, string filePath)
{
    try
    {
        using (StreamWriter sw = new StreamWriter(filePath, false, System.Text.Encoding.Default)) // 
        {
            sw.Write(str);
        }
        return " Execl !";
    }
    catch (Exception ex)
    {
        return " Execl ! :" + ex.Message;
    }
}

4. WriteToExcel 호출
WriteToExcel(GetSWstr(table), GetSavePath());

 
메서드 2: COM 구성 요소를 사용하여 Excel 작업을 수행하여 Excel 형식을 설정할 수 있습니다.
이런 조작도 매우 간단하다. excel 대상을 정의한 후에 excel을 통과할 수 있다.Cells[i, j]=?어떤 칸에 값을 부여합니다.
range = excel을 통해서도 됩니다.Range[excel.Cells[i, 1], excel.Cells[i, 3]];셀 영역을 가져와서range의 속성을 설정하면 셀 스타일이나 값을 설정할 수 있습니다
range.MergeCells = true;//셀 병합
range.Value = 제목;
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook book = excel.Workbooks.Add(true);
Microsoft.Office.Interop.Excel.Range range = null;
try
{
    // 
    range = excel.Range[excel.Cells[1, 1], excel.Cells[1, 6]];
    range.MergeCells = true; /// 
    range.Font.Bold = true; // 
    range.Font.Size = 20; //20 
    range.HorizontalAlignment = XlHAlign.xlHAlignCenter; // 
    range.Value = " ";   // 
}
catch(Exception ex)
{
    return " ! :" + ex.Message;
}
finally
{
    book = null;
    range = null;
    GC.Collect();
    GC.WaitForPendingFinalizers();
    excel.Quit();
    excel = null;
}

좋은 웹페이지 즐겨찾기