C#を使用して特定のキーワードのExcelドキュメントを解析し、その出現回数をカウントする必要があります。これらのキーワードは、一定の範囲内で検索する必要がありますが、固定されていません。ExcelドキュメントでC#を使用してキーワードを解析する
お願いします。
ありがとうございます!
C#を使用して特定のキーワードのExcelドキュメントを解析し、その出現回数をカウントする必要があります。これらのキーワードは、一定の範囲内で検索する必要がありますが、固定されていません。ExcelドキュメントでC#を使用してキーワードを解析する
お願いします。
ありがとうございます!
あなたはその後、以下のソースコードは、Excelのsfilenameのための最初の行に検索しますあなたのC#コードでMicrosoft.Office.Interop.Excelを使用する必要がありますが、この(私のような何かをしようとするファイル名
int countOccurence = 0;
public bool SearchRows(string valTosearch)
{
Excel.Application xlApp = new Excel.Application();
xlApp.ScreenUpdating = false;
try
{
xlApp.DisplayAlerts = false;
vk_filename = SFileName;
//Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(SFileName);
Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(
SFileName, vk_update_links, vk_read_only,
vk_format, vk_password,
vk_write_res_password,
vk_ignore_read_only_recommend, vk_origin,
vk_delimiter, vk_editable, vk_notify,
vk_converter, vk_add_to_mru,
vk_local, vk_corrupt_load);
Excel._Worksheet xlWorksheet = (Excel._Worksheet)xlWorkbook.Sheets[1];
Excel.Range xlRange = xlWorksheet.UsedRange;
int rowCount = xlRange.Rows.Count;
int colCount = xlRange.Columns.Count;
// loop trough cell range and excel rows below will search in 1st row
Excel.Worksheet worksheet = xlRange.Worksheet;
for (int iCount = 1; iCount <= colCount; iCount++)
{
string cellValue = "";
string fldValue = "";
Microsoft.Office.Interop.Excel.Range fldRange = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[1, iCount];
if (fldRange.Value2 != null)
{
fldValue = fldRange.Value2.ToString().Trim().ToLower();
}
else
{
fldValue = null;
}
Microsoft.Office.Interop.Excel.Range CellRange = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[2, iCount];
if (CellRange.Value2 != null)
{
cellValue = CellRange.Value2.ToString().Trim().ToLower();
if (cellvalue == valtosearch)
{
countOccurence +=1;
}
}
else
{
cellValue = null;
}
}
xlWorkbook.Close(vk_save_changes, vk_filename, vk_route_workbook);
//xlWorkbook.Save();
xlApp.Quit();
return true;
}
catch
{
xlApp.Quit();
return false;
}
}
ですExcel Interopを使用しています):
using Excel = Microsoft.Office.Interop.Excel;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
Excel.Application app = new Excel.Application();
Excel.Workbook wk = app.Workbooks.Open(@"D:\testExcel.xlsx");
Excel.Worksheet sh = (Excel.Worksheet)wk.ActiveSheet;
Excel.Range rng = sh.get_Range("A1", "Z20");
Console.WriteLine(CountWord(rng, "a"));
wk.Close(false);
app.Quit();
Console.ReadLine();
}
private static int CountWord(Excel.Range rng, string word)
{
int i = 0;
Excel.Range rng1 = rng.Find(word);
if (rng1 != null)
i++;
else
return 0;
string address = rng1.Address;
Console.WriteLine(address);
while (true)
{
rng1 = rng.FindNext(rng1);
if (rng1 == null)
return i;
Console.WriteLine(rng1.Address);
if (rng1.Address == address)
return i;
else
i++;
}
}
}
}
何を試しましたか? Excel(ODBC、Interop、Office Open XML)にどのようにアクセスしていますか? – Jetti
私はInteropを使用しています。 Microsoft.Office.Interop.Excel – user1300574
そして何か試しましたか? – Jetti