我的应用程序从 9 列的 excel 文件中读取数据,执行一些工作,如果满足某些条件,则将数据写入当前行的第 9 列。这部分工作正常。问题是我没有写的所有内容都会被删除,甚至文件中的其他工作表也是如此。
这是我的代码中唯一写入文件的部分。
using Microsoft.Office.Interop.Excel;[...]
Dictionary<int, string> newlines = new Dictionary<int, string>();
//excel reader reads the file, iterates the rows,
//check up the conditions, add pairs to newlines when needed
m_excelWriter = new ExcelWriter();
m_excelWriter.Open(FilePath);
foreach (var item in newlines)
{
m_excelWriter.WriteLine(item.Value, item.Key);
}
m_excelWriter.Close();
public void WriteLine(string Value, int RowNumber)
{
m_Worksheet.Cells[RowNumber, 8] = Value;
//both ways have the problem
//((Range)m_Worksheet.Cells[RowNumber, 8]).Value2 = Value;
}
这里是内文。不过这部分不是我写的。
编辑:在为您发布此内容后看起来我无法阅读 ,我意识到(非常明显的)问题
public void Open(string FilePath)
{
// Open Excel :
Process[] ExcelProcessesBefore = Process.GetProcessesByName("EXCEL");
this.m_Application = new Microsoft.Office.Interop.Excel.Application();
Process[] ExcelProcessesAfter = Process.GetProcessesByName("EXCEL");
this.m_ProcessId = this.GetProcessId(ExcelProcessesBefore, ExcelProcessesAfter);
this.m_Application.DisplayAlerts = false;
// Open the worksheet :
this.m_Workbook = this.m_Application.Workbooks.Add(Type.Missing);
this.m_Workbook.SaveAs(FilePath, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, XlSaveAsAccessMode.xlNoChange, Type.Missing,
Type.Missing, Type.Missing, Type.Missing);
m_Worksheet = (_Worksheet)m_Workbook.Worksheets[0];
}