나는 여러 페이지가있는 스프레드 시트를 가지고 있습니다. 버튼을 클릭하면이 스프레드 시트를 열고 데이터베이스에서 반환 된 모든 데이터 (데이터 세트/데이터 테이블)를 작성해야합니다. 스프레드 시트의 페이지 중 하나. 데이터 시트를 새로운 엑셀 시트로 내보내는 기사가 너무 많습니다. 기존 스프레드 시트를 열고 asp.net/C#을 사용하여 데이터 세트를 작성합니까?기존 빈 스프레드 시트를 열고 그것에 데이터 쓰기
도와주세요 ..
감사합니다.
UPDATE :
기본적으로 나는 새로운 엑셀 시트에 데이터 집합을 내보내려면 다음과 같은 코드가 있습니다.
개인 무효 createDataInExcel (데이터 집합 DS)
{
Application oXL;
_Workbook oWB;
_Worksheet oSheet;
Range oRng;
string strCurrentDir = Server.MapPath(".") + "\\excelreports\\";
try
{
oXL = new Application();
oXL.Visible = false;
//Get a new workbook.
oWB = (_Workbook)(oXL.Workbooks.Add(Missing.Value));
oSheet = (_Worksheet)oWB.ActiveSheet;
//System.Data.DataTable dtGridData=ds.Tables[0];
int iRow = 2;
if (ds.Tables[0].Rows.Count > 0)
{
for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
{
oSheet.Cells[1, j + 1] = ds.Tables[0].Columns[j].ColumnName;
}
// For each row, print the values of each column.
for (int rowNo = 0; rowNo < ds.Tables[0].Rows.Count; rowNo++)
{
for (int colNo = 0; colNo < ds.Tables[0].Columns.Count; colNo++)
{
oSheet.Cells[iRow, colNo + 1] = ds.Tables[0].Rows[rowNo][colNo].ToString();
}
iRow++;
}
}
oRng = oSheet.get_Range("A1", "IV1");
oRng.EntireColumn.AutoFit();
oXL.Visible = false;
oXL.UserControl = false;
string strFile = "excelreport" + DateTime.Now.Ticks.ToString() + ".xls";//+
oWB.SaveAs(strCurrentDir +strFile, XlFileFormat.xlWorkbookNormal, null, null, false, false, XlSaveAsAccessMode.xlShared, false, false, null,null, null);
// Need all following code to clean up and remove all references!!!
oWB.Close(null, null, null);
oXL.Workbooks.Close();
oXL.Quit();
Marshal.ReleaseComObject(oRng);
Marshal.ReleaseComObject(oXL);
Marshal.ReleaseComObject(oSheet);
Marshal.ReleaseComObject(oWB);
}
catch (Exception theException)
{
Response.Write(theException.Message);
}
Response.Write("data exported");
}
는 기존 시트에 데이터 집합을 작성하는 위의 코드를 개선하기 위해? 또한 위의 코드로 가능은 쓸 분 정도 복용 엑셀 시트에 데이터가 .. 왜 그렇게 오랫동안 복용하고 있는지 이해할 수 없습니다.
감사 Pharabus.Iam 내 .xls 파일을 열어서 지금 쓸 수 있습니다. 필자는 엑셀 시트의 파일 다운로드를 올리고 파일 열기/저장을 허용하고자합니다. 엑셀 시트에 데이터를 쓰는 코드. HttpResponse 응답 = HttpContext.Current.Response; response.AddHeader ("Content-Disposition", "첨부 파일; filename = \"Mss.xls \ ""); 여기서 Mss.xls는 내 excel sheet의 이름입니다. 다운로드에서이 파일을 저장하려고 할 때 aspx 페이지가 복사되고 spreadsheet.please가 복사되지 않습니다. – kranthi
실제로 파일을 응답 스트림에 쓰고 있습니까? Response.WriteFile (FilePath); Response.End(); – Pharabus
당신은 바로 Pharabus입니다. 나는 WriteFile()을 호출하지 않았습니다. 당신에게 주어진 라인을 추가하면됩니다. 제가 남겨야 할 유일한 문제는 기존 코드를 열 때 내 코드가 약 5 초 정도 걸리는 것과 전체 데이터를 쓰십시오. 엑셀 시트에 약 500 개의 레코드를 씁니다. 오랜 시간이 걸릴 이유가 될 수 있습니까? 속도를 향상시킬 수있는 방법이 있습니까? 원래 질문에서 코드를 확인하십시오. 잘못된 것이 있다면? – kranthi