반응형
ds = JsonConvert.DeserializeObject(srtResult);
//strJson = value.vJsonData.ToString(); //Object로 보내기 위한 작업
//여기서 부터 엑셀 데이터 만들기. (Ds)
//ds = JsonConvert.DeserializeObject(value.vJsonData);
Excel.Application ap = new Excel.Application();
Excel.Workbook excelWorkBook = ap.Workbooks.Add();
foreach (DataTable Excel_dt in ds.Tables)
{
Excel.Worksheet ws = excelWorkBook.Sheets.Add();
ws.Name = Excel_dt.TableName;
for(int columnHeaderIndex = 1; columnHeaderIndex <= Excel_dt.Columns.Count; columnHeaderIndex++)
{
ws.Cells[1, columnHeaderIndex] = Excel_dt.Columns[columnHeaderIndex -1].ColumnName;
ws.Cells[1, columnHeaderIndex].Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.LightSteelBlue);
}
for(int rowIndex = 0; rowIndex < Excel_dt.Rows.Count; rowIndex++)
{
for(int columnIndex = 0; columnIndex < Excel_dt.Columns.Count; columnIndex++)
{
ws.Cells[rowIndex + 2 , columnIndex + 1] = Excel_dt.Rows[rowIndex].ItemArray[columnIndex].ToString();
}
}
ws.Columns.AutoFit();
}
//파일저장
string strDateTime = strDateTime = DateTime.Now.ToString("yyyyMMddHHmmssFFF");
string strPath = "Files/";
//System.IO.FileInfo fi;
//fi = new System.IO.FileInfo(Server.MapPath("~/Files/")+strDateTime+".xlsx");
excelWorkBook.SaveAs(Server.MapPath("~/"+strPath)+strDateTime+".xlsx",Excel.XlFileFormat.xlOpenXMLWorkbook);
excelWorkBook.Close(true);
ap.Quit();
================================필독 ========================================
- import excel이 필요합니다. office12에 있습니다.
- 데이터 많으면 굉장히 느립니다.
더 빠른 방법 참고 https://1061025.tistory.com/54
'IT > C#' 카테고리의 다른 글
[C#]폴더 생성 , 폴더 내 데이터 압축 (한글X) (0) | 2020.03.12 |
---|---|
[C#] DataSet을 xlsx 확장자 파일로 만들기2 EPPlus 사용 (0) | 2020.02.13 |
[C#]RSS xml로 가져오기 (0) | 2019.12.05 |
[C#] 관세청 유니패스 API XML로 가져오기 (0) | 2019.11.21 |
[C#] URL로 XML을 받아 파싱하는 방법 (0) | 2019.11.07 |