gpt4 book ai didi

c# - 使用互操作创建 excel 文件时防止打开 Excel

转载 作者:行者123 更新时间:2023-11-30 19:29:48 25 4
gpt4 key购买 nike

大家好,我正在使用 Microsoft office interop 创建一个 excel。它成功地创建了文件。但问题是,当它创建一个文件时,它只是打开 excel 将值添加到 excel 并将其保存在指定的名称中。任何意外当时输入结果会导致异常。我正在创建近 75 个文件,其中包含来自数据库的许多行,因此需要时间。在处理过程中,我无法执行任何任务,因为如果在 excel 中输入它会创建异常。有没有办法在后台运行该过程,这样 excel 应用程序就不会为每个文件创建打开。

Excel.Application oXL;
Excel.Workbook oWB;
Excel.Worksheet oSheet;
Excel.Range oRange;

// Start Excel and get Application object.
oXL = new Excel.Application();

// Set some properties
oXL.Visible = true;
oXL.DisplayAlerts = false;

// Get a new workbook.
oWB = oXL.Workbooks.Add(Missing.Value);

// Get the active sheet
oSheet = (Excel.Worksheet)oWB.ActiveSheet;
oSheet.Name = "Sales";

// Process the DataTable
// BE SURE TO CHANGE THIS LINE TO USE *YOUR* DATATABLE
DataTable dt = dtt;

int rowCount = 1;
foreach (DataRow dr in dt.Rows)
{
rowCount += 1;
for (int i = 1; i < dt.Columns.Count + 1; i++)
{
// Add the header the first time through
if (rowCount == 2)
{
oSheet.Cells[1, i] = dt.Columns[i - 1].ColumnName;
}
oSheet.Cells[rowCount, i] = dr[i - 1].ToString();
}
}

// Resize the columns
//oRange = oSheet.get_Range(oSheet.Cells[1, 1],
// oSheet.Cells[rowCount, dt.Columns.Count]);


oRange = oSheet.Range[oSheet.Cells[1, 1], oSheet.Cells[rowCount, dt.Columns.Count]];
oRange.EntireColumn.AutoFit();

// Save the sheet and close
// oSheet = null;
oRange = null;

oWB.SaveAs("" + username + " .xls", Excel.XlFileFormat.xlWorkbookNormal,
Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Excel.XlSaveAsAccessMode.xlExclusive,
Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value);
oWB.Close(Missing.Value, Missing.Value, Missing.Value);
oWB = null;
oXL.Quit();

// Clean up
// NOTE: When in release mode, this does the trick
GC.WaitForPendingFinalizers();
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();

最佳答案

默认情况下,通过 Interop 的 Excel 打开时是不可见的。
是您的代码改变了 Excel 的可见性。删除行

oXL.Visible = true;

或者设置为false

oXL.Visible = false;

关于c# - 使用互操作创建 excel 文件时防止打开 Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10992163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com