使用搜索的通用列表 [英] generic list using search
问题描述
内部静态void GenerateExcel(DataTable dt)
{
Microsoft.Office.Interop.Excel.Application objApp = new Microsoft.Office.Interop.Excel .Application();
Microsoft.Office.Interop.Excel.Workbooks objBooks = objApp.Workbooks;
Microsoft.Office.Interop.Excel.Workbook objBook = objBooks.Add (Missing.Value);
Microsoft.Office.Interop.Excel.Worksheet objSheet = null;
if(dt.Rows.Count > 0)
{
objSheet =(Microsoft.Office.Interop.Excel.Worksheet)objBook.Worksheets.Add(Missing.Value,Missing.Value,Missing。 Value,Missing.Value);
((Microsoft.Office.Interop.Excel.Worksheet)objBook.Sheets [1])。选择(Missing.Value);
int row = 0;
//标题
objSheet.Cells [row + 1,1] =CC_CODE;
objSheet.Cells [row + 1,2] =DAY;
objSheet.Cells [row + 1,3] =MONTH;
objSheet.Cells [row + 1,4] =YEAR;
objSheet.Cells [row + 1,5] =SHIFT;
objSheet .Cells [row + 1,6] =SCODE;
objSheet.Cells [row + 1,7] =MILKTYPE;
objSheet.Cells [row + 1,8] =CAN;
objSheet.Cells [row + 1,9] =KG;
objSheet.Cells [row + 1,10 ] =LITER;
objSheet.Cells [row + 1,11] =LR;
objSheet.Cells [row + 1,12] =FAT ;
objSheet.Cells [row + 1,13] =SNF;
objSheet.Cells [row + 1,14] =SOUR STATUS;
objSheet.Cells [row + 1,14] .EntireRow.Font.Bold = true;
objSheet.Columns [16] .AutoFit();
foreach(DataRow dr in dt.Rows)
{
row ++;
for(int col = 0; col< dt.Columns.Count; col ++)
{
objSheet.Cells [row + 1,col + 1] = dr [col] .ToString();
objSheet .Cells [row + 1,1] = Settings.Instance.UnionCode;
objSheet.Cells [row + 1,2] = Convert.ToDateTime(dr [Date])。Day;
objSheet.Cells [row + 1,3] = string.Format({0:MM},Convert.ToDateTime(dr [Date]));
objSheet.Cells [row + 1,4] = Convert.ToDateTime(dr [Date])。年份;
objSheet.Cells [row + 1,5] = dr [Shift ] .ToString();
objSheet.Cells [row + 1,6] = dr [SocNo]。ToString();
objSheet.Cells [row + 1,7=C;
objSheet.Cells [row + 1,8] = dr [CAN]。ToString();
objSheet.Cells [row + 1,9] =;
objSheet.Cells [row + 1,10] = dr [Liter]。ToString();
objSheet.Range [J2,J+ row + 1] .NumberFormat =####。0 ;
objSheet.Range [L2,L+行+ 1] .NumberFormat =#。0;
objSheet.Range [M2 ,M+行+ 1] .NumberFormat =#。0;
objSheet.Cells [row + 1,11] =;
objSheet。单元格[row + 1,12] = dr [Fat]。ToString();
objSheet.Cells [row + 1,13] = dr [Snf]。ToString();
objSheet.Cells [row + 1,14] =;
}
}
objBook.Close(true,@D:\ 012586.xlsx,Missing.Value);
objBooks.Close();
objApp.Quit();
}
}
如果是y你想基于某些属性在CaseManagement列表上执行模式搜索LINQ是一个不错的选择..
如下所示..
静态列表< CaseManagement > ListCaseDetails()
{
返回新列表< CaseManagement > ()
{new CaseManagement(){CustomerName =Customer1,CaseTitle =CaseTitle111},
new CaseManagement(){CustomerName =Customer22 ,CaseTitle =CaseTitle22},
新CaseManagement(){CustomerName =Customer333,CaseTitle =CaseTitle3}};
}
static void搜索()
{
正则表达式reg =新正则表达式(@^ [A-Za-z] * \d {1}
,RegexOptions.IgnoreCase);
var x = ListCaseDetails()。其中(p => reg.IsMatch(p.CustomerName)== true || reg.IsMatch(p.CaseTitle)== true)。ToList();
}
这将导致{Customer1,CaseTitle111}和{Customer333,CaseTitle3}作为输出
internal static void GenerateExcel(DataTable dt)
{
Microsoft.Office.Interop.Excel.Application objApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbooks objBooks = objApp.Workbooks;
Microsoft.Office.Interop.Excel.Workbook objBook = objBooks.Add(Missing.Value);
Microsoft.Office.Interop.Excel.Worksheet objSheet = null;
if (dt.Rows.Count > 0)
{
objSheet = (Microsoft.Office.Interop.Excel.Worksheet)objBook.Worksheets.Add(Missing.Value, Missing.Value, Missing.Value, Missing.Value);
((Microsoft.Office.Interop.Excel.Worksheet)objBook.Sheets[1]).Select(Missing.Value);
int row = 0;
//Headers
objSheet.Cells[row + 1, 1] = "CC_CODE";
objSheet.Cells[row + 1, 2] = "DAY";
objSheet.Cells[row + 1, 3] = "MONTH";
objSheet.Cells[row + 1, 4] = "YEAR";
objSheet.Cells[row + 1, 5] = "SHIFT";
objSheet.Cells[row + 1, 6] = "SCODE";
objSheet.Cells[row + 1, 7] = "MILKTYPE";
objSheet.Cells[row + 1, 8] = "CAN";
objSheet.Cells[row + 1, 9] = "KG";
objSheet.Cells[row + 1, 10] = "LITER";
objSheet.Cells[row + 1, 11] = "LR";
objSheet.Cells[row + 1, 12] = "FAT";
objSheet.Cells[row + 1, 13] = "SNF";
objSheet.Cells[row + 1, 14] = "SOUR STATUS";
objSheet.Cells[row + 1, 14].EntireRow.Font.Bold = true;
objSheet.Columns[16].AutoFit();
foreach (DataRow dr in dt.Rows)
{
row++;
for (int col = 0; col < dt.Columns.Count; col++)
{
objSheet.Cells[row + 1, col + 1] = dr[col].ToString();
objSheet.Cells[row + 1, 1] = Settings.Instance.UnionCode;
objSheet.Cells[row + 1, 2] = Convert.ToDateTime(dr["Date"]).Day;
objSheet.Cells[row + 1, 3] = string.Format("{0:MM}", Convert.ToDateTime(dr["Date"]));
objSheet.Cells[row + 1, 4] = Convert.ToDateTime(dr["Date"]).Year;
objSheet.Cells[row + 1, 5] = dr["Shift"].ToString();
objSheet.Cells[row + 1, 6] = dr["SocNo"].ToString();
objSheet.Cells[row + 1, 7] = "C";
objSheet.Cells[row + 1, 8] = dr["CAN"].ToString();
objSheet.Cells[row + 1, 9] = " ";
objSheet.Cells[row + 1, 10] = dr["Liter"].ToString();
objSheet.Range["J2", "J" + row + 1].NumberFormat = "####.0";
objSheet.Range["L2", "L" + row + 1].NumberFormat = "#.0";
objSheet.Range["M2", "M" + row + 1].NumberFormat = "#.0";
objSheet.Cells[row + 1, 11] = "";
objSheet.Cells[row + 1, 12] = dr["Fat"].ToString();
objSheet.Cells[row + 1, 13] = dr["Snf"].ToString();
objSheet.Cells[row + 1, 14] = "";
}
}
objBook.Close(true, @"D:\12586.xlsx", Missing.Value);
objBooks.Close();
objApp.Quit();
}
}
Hi, if you want to perform a pattern search on list of CaseManagement based on certain properties LINQ is a good choice..
something like below..
static List<CaseManagement> ListCaseDetails() { return new List<CaseManagement>() { new CaseManagement() { CustomerName = "Customer1", CaseTitle="CaseTitle111"}, new CaseManagement() {CustomerName = "Customer22", CaseTitle="CaseTitle22" }, new CaseManagement() { CustomerName = "Customer333", CaseTitle="CaseTitle3"} }; } static void Search() { Regex reg = new Regex(@"^[A-Za-z]*\d{1}
", RegexOptions.IgnoreCase); var x = ListCaseDetails().Where(p => reg.IsMatch(p.CustomerName) == true || reg.IsMatch(p.CaseTitle) == true).ToList(); }
This will result in {Customer1, CaseTitle111} and {Customer333, CaseTitle3} as output
这篇关于使用搜索的通用列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!