Excel 未使用 C# 中的互操作进行更新
Excel is not updated with interop in C#
我有以下代码,它基于 excel 中找到的值,我必须更新该行中的其他单元格值。但它不会将值更新回 excel sheet。 MasterTable 属于 DataTable,它具有与 excel 相同的列值,我需要将这些值更新为 excel。请帮我找出问题。
for (int row = 0; row < masterTable.Rows.Count; row++)
{
// Get the CIS ID
string CISid = Convert.ToString(masterTable.Rows[row][RemoveSpecialCharachtersAndSpace("SOW / CIS No")]);
Excel.Range range = xlWorksheet.UsedRange.Rows.Find(CISid, System.Type.Missing, Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlPart, Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlNext, System.Type.Missing, System.Type.Missing, System.Type.Missing);
//FindRangeCISByID(CISid);
if (range != null && range.Rows.Count > 0 && (!string.IsNullOrEmpty(Convert.ToString(range.Rows.Cells[1, 1].Value2))))
{
for (int cell1 = 1; cell1 < 5; cell1++)
{
//Master Excel Copy
string masterColumnCopy = Convert.ToString(range.Rows.Cells[1, cell1].Value2);
// Local Data table copy of column value
string datatableColumnValue = GetColumnValueFromDataTable(masterTable, cell1);
xlWorksheet.UsedRange.Find(CISid).Cells[1, cell1].Value = datatableColumnValue ;
}
}
}
xlWorkbook.Save();
xlWorkbook.Close();
xlApp.Quit();`
听起来很奇怪,但它使用工作簿的 saveAs 函数而不是保存。
我把保存码改成了下面的
xlWorkbook.SaveAs(@"D:\ExcelData_new.xlsx", Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookDefault, Type.Missing, Type.Missing,
false, false, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
它正在运行
我有以下代码,它基于 excel 中找到的值,我必须更新该行中的其他单元格值。但它不会将值更新回 excel sheet。 MasterTable 属于 DataTable,它具有与 excel 相同的列值,我需要将这些值更新为 excel。请帮我找出问题。
for (int row = 0; row < masterTable.Rows.Count; row++)
{
// Get the CIS ID
string CISid = Convert.ToString(masterTable.Rows[row][RemoveSpecialCharachtersAndSpace("SOW / CIS No")]);
Excel.Range range = xlWorksheet.UsedRange.Rows.Find(CISid, System.Type.Missing, Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlPart, Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlNext, System.Type.Missing, System.Type.Missing, System.Type.Missing);
//FindRangeCISByID(CISid);
if (range != null && range.Rows.Count > 0 && (!string.IsNullOrEmpty(Convert.ToString(range.Rows.Cells[1, 1].Value2))))
{
for (int cell1 = 1; cell1 < 5; cell1++)
{
//Master Excel Copy
string masterColumnCopy = Convert.ToString(range.Rows.Cells[1, cell1].Value2);
// Local Data table copy of column value
string datatableColumnValue = GetColumnValueFromDataTable(masterTable, cell1);
xlWorksheet.UsedRange.Find(CISid).Cells[1, cell1].Value = datatableColumnValue ;
}
}
}
xlWorkbook.Save();
xlWorkbook.Close();
xlApp.Quit();`
听起来很奇怪,但它使用工作簿的 saveAs 函数而不是保存。
我把保存码改成了下面的
xlWorkbook.SaveAs(@"D:\ExcelData_new.xlsx", Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookDefault, Type.Missing, Type.Missing,
false, false, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
它正在运行