Excel 용 .NET 구성 요소 2003 서식 용 템플릿을 사용한 스프레드 시트 생성
-
05-07-2019 - |
문제
내 응용 프로그램을 해결하려는 문제는 다음과 같습니다.
현재 몇 가지 저장된 절차가 실행되고 데이터는 SQL 결과에서 빈 스프레드 시트로 수동으로 복사되며보고 분석가는 데이터를 형식화합니다. 이 과정은 너무 길고 비용이 많이 드는 것으로 간주되었습니다.
이상적인 솔루션 (내 마음에는)은 저장된 프로 시저 결과를 가져와 워크 시트 템플릿 (템플릿 형식 유지 관리)의 특정 셀 범위에 작성할 수있는 구성 요소가있는 .NET 응용 프로그램입니다. .NET 응용 프로그램에서.
그런 응용 프로그램이 있습니까? 더 나은 사람이 더 나은 솔루션을 가지고 있습니까?
이해해 주셔서 감사합니다.
해결책
데이터를 설정하는 데 사용하는 것
데이터를 형태로 가져옵니다
object[,] excelSpreadsheetData
그런 다음 설정하여 데이터를 적용하십시오
public void SetWorksheetData(long rowCount, long columnCount, object[,] excelSpreadsheetData, int startingRow, int startingCol, Worksheet worksheet)
{
if (rowCount == 0 || columnCount == 0) return;
//set the region data.
object m_objOpt = Missing.Value;
Range cellRange = worksheet.get_Range(ExcelGeneratorUtils.ExcelColumnFromNumber(startingCol) + startingRow, m_objOpt);
cellRange = cellRange.get_Resize(rowCount, columnCount);
cellRange.set_Value(m_objOpt, excelSpreadsheetData);
}
이렇게하면 템플릿 형식을 유지하고 셀별로 셀을 설정하는 것보다 훨씬 빠르게 데이터를 설정해야합니다.
도움이되기를 바랍니다
다른 팁
.NET 용 스프레드 시트 기어 Excel 통합 문서를 열고 값을 꽂고 통합 문서를 저장할 수 있습니다.
Excel보고 (즉, Excel로 내보내기) 샘플을 볼 수 있습니다. 여기 무료 평가판을 다운로드하십시오 여기.
면책 조항 : 스프레드 시트 기어 LLC를 소유하고 있습니다
Interop을 통해 항상 Excel Automation을 사용할 수 있습니다. 원하는 출력이 탁월 할 때 때때로이 작업을 수행했습니다. 놀랍게도 빠르게, 당신은 자신을 청소하고 Excel의 인스턴스를 남기지 않도록주의해야합니다. 다음은 간단한 샘플입니다.
using Excel = Microsoft.Office.Interop.Excel;
Excel.ApplicationClass _Excel;
Excel.Workbook WB;
Excel.Worksheet WS;
_Excel = new Microsoft.Office.Interop.Excel.ApplicationClass();
WB = _Excel.Workbooks.Add(System.Reflection.Missing.Value);
WS = (Excel.Worksheet)WB.Worksheets[1];
WS.Name = "Test";
try
{
int row;
int col;
WS.Cells[++row, col] = "COL1";
WS.Cells[row, ++col] = "COL2";
WS.get_Range("A1", "A2").Font.Bold = true;
WS.get_Range("A1", "A2").HorizontalAlignment =Excel.XlHAlign.xlHAlignCenter;
WS.Cells[++row, col] = "Customer";
WS.Cells[++row, col] = "Expenses"
WS.get_Range("A1", "B1").Font.Bold = true;
WS.Columns.AutoFit();
WS.Rows.AutoFit();
WS.Activate();
_Excel.Visible = true;
}
catch (Exception ex)
{
WB.Close(false, Type.Missing, Type.Missing);
_Excel.Quit();
throw;
}
finally
{
GC.Collect();
GC.WaitForPendingFinalizers();
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(WS);
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(WB);
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(_Excel);
}
~ 안에 이 질문 나는 비슷한 것을 요구했다. 차이점은 Excel에 의해 스프레드 시트로 해석되는 XML 파일을 생성하기를 원한다는 것입니다. 데이터를 XML 파일로 보낼 수 있다면 XML을 스프레드 시트ml로 변환하면 문제가 해결 될 수 있습니다. 그러나 스프레드 시트 XM에는 몇 가지 제한 사항이 있습니다. Excel을 설치할 필요는 없으며 변환이 실질적 일 수 있습니다. Excel 2007을 사용하는 경우 사용할 수있는 두 번째 XML 형식이 있습니다. Microsoft Office XML 체재. 기본적으로 현재 코드가 Com을 통해 Excel과 상호 작용한다고 의심되기 때문에 느립니다.