2
因此,我正在做一些For循环,这些循环遍历从模板导入的不同变量更改,SQL脚本运行,数据转储,循环到下一个SQL脚本等,完成使用相同的模板文件(这在查询结束转储保存为一个新文件多次使用,作为背景。将工作簿名称传递给For循环C#
我需要能够通过循环打开模板第一次,然后把它通过每个查询转储,直到完成开,我不希望保留重新打开文件作为其太大而笨重我有这个至今:
public void ExportToExcel(DataSet dataSet, string templatePath)
{
Excel.Application excelApp = new Excel.Application();
excelApp.Visible = true;
FileInfo excelFileInfo = new FileInfo(templatePath);
Boolean fileOpenTest = IsFileLocked(excelFileInfo);
if (!fileOpenTest)
{
Excel.Workbook templateBook = excelApp.Workbooks.Open(templatePath);
}
else
{
Excel.Workbook templateBook = excelApp.Workbooks[templatePath];
}
for (int i = 0; i < lstQueryDumpSheet.Items.Count; i++)
{
string tabName = lstQueryDumpSheet.Items[i].ToString();
Excel.Worksheet templateSheet = templateBook.Sheets[tabName];
// Copy DataTable
foreach (System.Data.DataTable dt in dataSet.Tables)
{ ... rest of loops...
我的问题是,代码行“Excel.Worksheet templateSheet = templateBook.Sheets [tabName];”告诉我,“templateBook”没有分配,但我在IF语句外分配它,所以它应该通过....右?