Excel COM과 함께 SharePoint에 파일 저장 문제가 생깁니다. 파일을 열었지만 'xlviewer.xlsx'로 열리므로 원본 파일을 덮어 쓸 필요가 있다고 가정합니다. (I 일부 오류 처리를 수행 할 시도/캐치를 제거했습니다.) 내가 할 때 나는이 오류가 발생합니다 : "인덱스 목록의 끝을지나 말한다"다른 (오류를 줄 42 '다른 이름으로 저장 문')오류 - 색인이 목록의 끝을 초과 함을 나타냅니다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Excel = Microsoft.Office.Interop.Excel;
using System.Reflection;
using System.IO;
namespace CopyInteractionIds
{
class Program
{
static void Main(string[] args)
{
Excel.Application oApp;
Excel._Workbook oWbFrom;
Excel._Workbook oWbTo;
Excel._Worksheet oWsFrom;
Excel._Worksheet oWsTo;
Excel.Range oRngFrom;
Excel.Range oRngTo;
//try
//{
oApp = new Excel.Application();
oApp.Visible = true;
Console.WriteLine("Opening source workbook");
oWbFrom = (Excel._Workbook)(oApp.Workbooks.Open(@"path to my source wb"
, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value
, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value));
Console.WriteLine("Opening edited workbook");
oWbTo = (Excel._Workbook)(oApp.Workbooks.Open(@"https://path to my out wb"
, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value
, Missing.Value, true, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value));
Console.WriteLine("Copying data");
oWsFrom = (Excel._Worksheet)oWbFrom.Worksheets.get_Item("Interaction Number Lookup");
oWsTo = (Excel._Worksheet)oWbTo.Worksheets.get_Item("Interaction Number Lookup");
oRngFrom = oWsFrom.get_Range("=OFFSET($A$1,0,0,COUNTA($A:$A),COUNTA($1:$1))",Missing.Value);
oWsTo.get_Range("=OFFSET($A$1,0,0,COUNTA($A:$A),COUNTA($1:$1))", Missing.Value).Clear();
oRngTo = oWsTo.get_Range("A1",Missing.Value);
oRngFrom.Copy(oRngTo);
Console.WriteLine("Saving edited file");
oWbTo.SaveAs(@"path to out file"
, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value
,Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlShared, Missing.Value
, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
oWbTo.Close(false,Missing.Value,Missing.Value);
oWbFrom.Close(false, Missing.Value, Missing.Value);
oApp.Quit();
//}
//catch(Exception ex)
//{
// Console.WriteLine("Unable to process job: {0}",ex.Message);
//}
}
}
}
정확히 어떤 줄이 예외를 throw 하는지를 아는 데 도움이됩니다. –
헝가리 = 나쁜데, 당신이 선언 한 모든 변수에 앞에 o가 있습니까?! 어떤 줄이 나옵니까? –
헝가리 = vba 습관 권자 –