複数のExcelファイルをくし刺し検索置換
Excelファイルを扱う話題最終編。
ClosedXMLを使って、C#でExcelファイルのセル中の文字を検索/置換する。
テキストボックスをふたつつくって、ボタンのイベントで呼ぶだけ。
foreachでbook, sheet, row, cellを回して、文字(value)を置換するだけでできる。
string[] files = Directory.GetFiles(KeywordTextBox.Text, "*.xlsx");
foreach (string file in files)
{
string savename = Path.GetDirectoryName(file) + @"\" + Path.GetFileNameWithoutExtension(file) + "2.xlsx";
using (var wb = new XLWorkbook(file))
{
foreach (var worksheet in wb.Worksheets)
{
foreach (var line in worksheet.Rows)
{
for (int i = 0; i < 65500; i++)
{
IXLCell cell = worksheet.Cell(line.Number, i);
cell.Value = cell.Value.ToString().Replace(ExcelKeywordTextBox.Text, ExcelChange2KeywordTextBox.Text);
}
}
}
wb.SaveAs(savename);
}
}
}