Excel 용 .NET 구성 요소 2003 서식 용 템플릿을 사용한 스프레드 시트 생성

StackOverflow https://stackoverflow.com/questions/1405431

문제

내 응용 프로그램을 해결하려는 문제는 다음과 같습니다.

현재 몇 가지 저장된 절차가 실행되고 데이터는 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과 상호 작용한다고 의심되기 때문에 느립니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top