我正在尝试从A列和第二个Excel工作表行开始设置Excel工作表特定单元格。我写了以下代码:
if (!File.Exists(AppConfiguration.FilePath))
{
throw new FileNotFoundException("File Not Found. The requested template.xlsx was not found on the server");
}
Microsoft.Office.Interop.Excel.Application xlsx = new Microsoft.Office.Interop.Excel.Application();
Workbook workbook = null;
try
{
workbook = xlsx.Workbooks.Open(AppConfiguration.FilePath, ReadOnly: false, Editable: true);
Worksheet worksheet = workbook.Worksheets[1];
Microsoft.Office.Interop.Excel.Range cells = worksheet.Cells["$A"];
List<Analytics> list = (List<Analytics>)data;
for (int i = 0; i < list.Count; i++)
{
((Microsoft.Office.Interop.Excel.Range)cells[i + 1, 0]).Value = list[i].ProductShare;
((Microsoft.Office.Interop.Excel.Range)cells[i + 1, 1]).Value = list[i].MarketPotential;
}
workbook.Save();
}
catch(Exception e)
{
throw new Exception("Error while processing file");
}
finally
{
workbook.Close(SaveChanges: true);
xlsx.Quit();
Marshal.ReleaseComObject(workbook);
}
但是,我总是在
得到一个例外(Microsoft.Office.Interop.Excel.Range)cells[i + 1, 0]).Value = list[i].ProductShar
答案 0 :(得分:0)
在Excel中,索引从1开始,因此cells[i + 1, 0]
无效,请改用cells[i + 2, 1]
。
答案 1 :(得分:0)
for(int i = 0; i< list.Count; i++)
{
worksheet.Range[string.Format("A{0}", i + 2].Value = list[i].val;
}
从A2开始,我开始在我的列表中写下我正在寻找的值!感谢大家的时间和考虑!