0

こんにちは私はMicrosoft.Office.Interop.Exceldllを使用してコードを記述しましたが、Webサイトを公開したときにオンラインでサポートされていません。その後、EPPlus dll witchがオンラインでサポートされていることがわかりましたが、この新しいdllを使用するようにコードを変換するのに問題があります。

Interop.Excelを使用する古いコード:

using Excel = Microsoft.Office.Interop.Excel;

Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet[] xlWorkSheet = new Excel.Worksheet[8];

public void ToSpreadSheet()
{ 
xlApp = new Excel.ApplicationClass();
xlWorkBook = xlApp.Workbooks.Open(tempFolderPathAlt + "dvforms\\InvestecTemplate.xlsx", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);

xlWorkSheet[0] = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
xlWorkSheet[1] = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(2); 
xlWorkSheet[2] = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(3); 
xlWorkSheet[3] = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(4); 
xlWorkSheet[4] = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(5); 
xlWorkSheet[5] = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(6); 
xlWorkSheet[6] = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(7); 
xlWorkSheet[7] = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(8); 
}

これはうまく機能しましたが、EPPlus dllを使用する必要があり、問題が発生しています。

 using Excel = OfficeOpenXml;

    Excel.ExcelPackage xlApp;
    Excel.ExcelWorkbook xlWorkBook;
    Excel.ExcelWorksheet[] xlWorkSeet = new Excel.ExcelWorksheet[8];

    Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(tempFolderPathAlt + "dvforms\\InvestecTemplate.xlsx");
    Excel.ExcelPackage xlApp = new Excel.ExcelPackage(stream);

//This is where the problems begin, xlWorkBook.Worksheets.Add(1) is all underlined in red.
    xlWorkSeet[0] = (Excel.ExcelWorksheet)xlWorkBook.Worksheets.Add(1); 

Excelテンプレートからワークシートをロードするにはどうすればよいですか?上記を正しく行ったかどうかはわかりません。ひどく必要になるのを手伝ってください。

前もって感謝します。

4

2 に答える 2

0
FileInfo existingFile = new FileInfo(filePath);

            using (var package = new ExcelPackage(existingFile))
            {
                ExcelWorkbook workBook = package.Workbook;

                if (workBook != null)
                {
                    if (workBook.Worksheets.Count > 0)
                    {
                        int i = 0;
                        foreach(ExcelWorksheet worksheet in workBook.Worksheets)
                        {
                            xlWorkSeet1[i] = worksheet;
                            i = i + 1;
                        }

                    }
                }
于 2012-10-12T11:18:53.157 に答える
-1

関数 Add() は、ワークシートの名前である文字列パラメーターを受け取ります。試す:

xlWorkSeet[0] = (Excel.ExcelWorksheet)xlWorkBook.Worksheets.Add("Sheet1");
于 2012-10-11T11:27:21.047 に答える