2017-11-06 10 views
-2

데이터베이스에 연결된 응용 프로그램이 있습니다. 데이터를 복구하여 gridView에 표시합니다. 이제 내 버튼을 내 xls 또는 csv 파일로 추출하려고합니다.데이터베이스가있는 C#으로 Excel 파일을 내보내려면

내 데이터 그리드 : My datagrid

my button

그래서 내 버튼 코드 추출물, 나는

xlWorkSheet.Cells[1, 1] = "Id Action";" //by my database or my datagridView. 

SUMMA으로

xlWorkSheet.Cells["all"] = ADOAction.dataGridAction(var1, var2); 

에 변경하려는 리제 불분명 인 경우 : 데이터베이스에서 데이터를 추출 용

  • 기본 응용
  • I 가지고있는 DataGridView를 도시 한 도면
  • I는 데이터베이스 DataGridView에의 디스플레이를위한 데이터 격자 함수 값이
  • I 가지고 당신은 내 문제의 아이디어 나 나에게조차 링크가있는 경우 file.xls를 추출하지만, 데이터가 내 데이터베이스에없는 뷰 버튼, 그것은 승 ... 그것을 그래서

단지 하드 데이터의 나 행복하게 해줘.

안녕, 좋은 하루!

+3

게시 코드를 중지하십시오. [FAQ]를 읽으십시오. 어떤 것을 시도했는지, 디버깅 한 것을 보여주십시오. – t0mm13b

+1

http://idownvotedbecau.se/imageofcode 때문에 downvoted되었습니다. 여기에 셀 서식을 사용하여 답변을 찾을 수 있습니다. https://stackoverflow.com/questions/39210329/export-the-datagridview-to-excel-with-all - 셀 형식 - 우리는 file.xls *를 추출한 뷰의 * 버튼으로 어떤 의미인지 전혀 알지 못합니다. 그러나 데이터는 내 데이터베이스에 없습니다. 단지 하드 데이터입니다 ...*** –

+0

죄송합니다 이미지에 대한 코드가 깨졌습니다 ...이 간단한 설명을 따라하지만 내 데이터베이스에서 데이터를 사용하려면 : http://csharp.net-informations.com/excel/csharp-create-excel .htm –

답변

0

것은이

private void btnExportExcel_Click(object sender, EventArgs e) 
{ 
    YourDataGridID.SelectAll(); 
    DataObject dataObj = YourDataGridID.GetClipboardContent(); 
    if (dataObj != null) 
     Clipboard.SetDataObject(dataObj); 
    GenerateExcel(); 
} 

private static void GenerateExcel() 
{ 
    Microsoft.Office.Interop.Excel.Application xlexcel; 
    Microsoft.Office.Interop.Excel.Workbook xlWorkBook; 
    Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet; 
    object misValue = System.Reflection.Missing.Value; 
    xlexcel = new Microsoft.Office.Interop.Excel.Application(); 
    xlexcel.Visible = true; 
    xlWorkBook = xlexcel.Workbooks.Add(misValue); 
    xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); 
    Microsoft.Office.Interop.Excel.Range CR = (Microsoft.Office.Interop.Excel.Range)xlWorkSheet.Cells[1, 1]; 
    CR.Select(); 
    xlWorkSheet.PasteSpecial(CR, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, true); 
} 
+0

나는 2 개의 오류를 가지고 있는데, 첫째로 : GetClipBoardContent() (using missing, 나는 생각한다.) 그리고 두 번째 오류는 GenerateExcel이 보호 수준 때문에 접근 할 수 없다 ... –

+0

이제 오류가 하나있다. GetClipBoardContent() .. .하지만 난 모르겠다 ... 나는 이것을 시도 : https://stackoverflow.com/questions/1478342/datagridview-getclipboardcontent-equivalent-on-datagrid하지만 괜찮아. 하지만 당신의 시스템은 훌륭합니다, 엑셀을 만들고 데이터를 열면 아주 좋습니다 ... 데이터 그램의 데이터를 복구하기위한이 오류 : / –

0

그래서 윈도우 폼 데이터 그리드보기에서 엑셀로 데이터를 내보내려고, 내가 검색 한 나는이 나쁘지 않다 발견 : 이미 만든 file.xlsx이 있어야

!! !! https://github.com/ClosedXML/ClosedXML/blob/develop/README.md 다음

내가 다음 코드를 입력 :

나는 NuGet 내 비주얼 스튜디오 2015에 ClosedXML를 다운로드

 XLWorkbook wb = new XLWorkbook("c:\\path...\\file.xlsx"); 
     DataTable dt = functiondatabase(); 
     wb.Worksheets.Add(dt, "NameOfSheets"); 
     wb.Save(); 

을 그리고이 사용 :

using ClosedXML.Excel; 

는 이제 데이터가 당신의 파일에 있지만 경고! file.xlsx가 이미 채워져 있으면 오류가 발생합니다!

여러분의 회신에 감사드립니다. 질문이 있으시면 비공개 메시지를 보내주십시오.

안녕 :) * 이미지 *, 즉 SO 지역 사회의 분노를 호출하는 하나의 좋은 방법을 그대로