私のアプリケーションは、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];
}