我现在试着让这项工作工作一周,但我仍然迷失了。 所以基本上我有一个Excel文件,我从Sharepoint打开,我想做一些更改并再次保存。
我正在使用:
打开它Excel.Workbook excelWorkbook;
using(Impersonator impersonator = new Impersonator())
{
Excel.Application excelApp = new Excel.ApplicationClass();
excelWorkbook = excelApp.Workbooks.Open(workbookPath,
Missing.Value,
true,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value);
}
return excelWorkbook;
我认为目前这是相当不错的。我正在使用模拟权来打开它和一切。
之后我制作了一份副本,以便两个人可以同时在两个不同的excel上工作。但那不是问题(我不这么认为)。
string savedPath = ExcelHelper.saveExcelWorkbookToTemp(filename, excelWorkbook);
//Closing first Excel and reopening the new one
ExcelHelper.closeExcelWorkbook(excelWorkbook);
Excel.Workbook excelWorkbookCurrent = ExcelHelper.openExcelWorkbook(savedPath);
首先,当我尝试打开一个特定的工作表(这里名为“Paramètres”)时,我得到一个名为的对象:Microsoft.Office.Interop.Excel.Worksheet {System .__ ComObject}。是否正常?我正在使用此功能打开工作表:
public static Excel.Worksheet openExcelWorkSheet(Excel.Workbook excelWorkbook, string name)
{
Excel.Worksheet worksheet;
using (Impersonator impersonator = new Impersonator())
{
//Excel.WorkSheets worksheets = excelWorkbook.Sheets;
//worksheet = (Excel.Worksheet)worksheets.get_Item(name);
worksheet = (Excel.Worksheet)excelWorkbook.Sheets["Paramètres"];
worksheet.Select(Type.Missing);
}
return worksheet;
}
之后我尝试更改单元格值,我收到此错误:
你们有什么想法我能克服这个问题吗?我不认为这是一个正确的问题,因为我使用管理员权限来做到这一点......
先谢谢。
PS:这是我修改单元格的功能
public static bool writeExcelCell(Excel.Worksheet worksheet, string cellName, string cellValue)
{
bool written = false;
using (Impersonator impersonator = new Impersonator())
{
try
{
worksheet.Cells[cellName] = cellValue;
written = true;
}
catch (Exception e)
{
written = false;
}
}
return written;
}
编辑:没有错误:
worksheet.get_Range("A1").Value = "AAA";
worksheet.get_Range("A3").Value2 = "BBB";
worksheet.get_Range("A2").set_Value(Type.Missing, "test");
但是当我打开它时我看不到变化......