kav@94 Ответов: 0

Примените цвет при экспорте в excel, если и код CPT, и CPT из первой таблицы совпадают с CPT


Ниже приведена моя первая таблица в базе данных

CPTCode                            CPT 
80051	                          82374	
                                  82435	     
                                  84132
                                  84295


и это моя вторая таблица в базе данных мое требование заключается в том что если код CPT в моей первой таблице имеет тот же код cpt во второй таблице то что я должен сделать это я должен покрасить этот код cpt в моей второй таблице после экспорта
кроме того я должен проверить все cpts этого кода cpt и если какие либо cpt совпадают в обеих таблицах я должен покрасить их также это означает

Billnum              CPT                                                
OCR000967985	     80051		
OCR000967985	     82310		
OCR000967985	     83690	
OCR000967985	     84132		
OCR000967985	     85025	
OCR000967985	     86140

У меня есть код CPT 80051 в первой таблице, и соответствующие cpt для кода CPT 80051-это 82374, 82435, 84132, 84295 - это данные первой таблицы
Во второй таблице у меня есть такой же счет num OCR000967985 с cpt 80051, 82310, 83690, 84132, 85025, 86140
если мы сравним приведенные выше данные 80051 в первой таблице совпадает с 80051 во второй таблице и один из cpt для кода CPT 80051 совпадает с cpt во второй таблице которая является 84132 то при экспорте я должен применить цвет для 80051 и 84132
как код КПП и КПП в первой таблице совпадает с КПП в второй таблице. Может ли кто-нибудь помочь мне в этом

Что я уже пробовал:

я не мог найти источник для этого

jekin77

как вы экспортируете данные в excel? (Оле ? Другая библиотека ?)

в любом случае... как возможное решение :
1: кэширование всех значений совпадения
2: экспорт данных в excel
3: цикл через значения соответствия
3.1: поиск значения в таблице excel
3.1.1: если найдено -> отметьте это

kav@94

использование взаимодействия

jekin77

try to use alogotithm abow with snippets below

//get used range
Excel.Range usedRange= WorkSheet.UsedRange;

//find cell that match your search value
Excel.Range findRange= usedRange.Find(YourSearchValue, missing,
        Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlPart,
		Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlNext, false,
        missing, missing); 
		
//mark matches
Excel.Range firstFind = null; 
while(findRange!= null)
{         
	// Keep track of the first range you find.
	if (firstFind == null)
	{            
		firstFind = findRange;
	}         
	// If you didn't move to a new range, you are done.        
	else if (findRange.get_Address(Excel.XlReferenceStyle.xlA1)
				== firstFind.get_Address(Excel.XlReferenceStyle.xlA1))        
	{            
		break;        
	}         
	
	//Apply color        
	findRange.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);
	findRange.Font.Bold = true;
	findRange = findRange.FindNext(findRange);     
}

kav@94

мое требование отличается от решения, которое вы мне дали
Мои данные table1 и table2 уже есть в моей базе данных и я пытаюсь сравнить данные таблицы 1 с данными таблицы 2 то есть я сравниваю

CPTCode CPT
80051 82374
82435
84132
84295
с

Billnum КПП
OCR000967985 80051
OCR000967985 82310
OCR000967985 83690
OCR000967985 84132
OCR000967985 85025
OCR000967985 86140

поскольку моя вторая таблица имеет как 80051, так и 84132 в первой таблице, мне нужно применить цвет для моей второй таблицы при экспорте в excel.


я получаю данные из двух таблиц в две таблицы данных, и меня поразило сравнение первой таблицы данных со второй таблицей данных, чтобы найти соответствующие CPT в обеих таблицах данных и применить цвета.

До сих пор я могу получить две таблицы данных в две таблицы данных оттуда я получил удар с двумя задачами они есть

1) Поиск совпадающих Cpt в обеих таблицах и

2) Применение цвета к тем, кто соответствует Cpt, при экспорте в excel

jekin77

ладно. вы можете воспользоваться двумя таблицами - скажи объекта DataTable("первый") и DataTable("второй")
сохраните значения CPT из таблиц в двух списках и сравните их

using System.Linq;
.
.
DataTable table1 = new DataTable("First");
...//fill you first table with data
DataTable table2 = new DataTable("Second");
...//fill you second table with data
 
//loop thrue the first table rows and collect cpt values
List<string> cptValuesList1 = new List<string>();
foreach (DataRow row in table1.Rows)
{
	cptValuesList1.Add(row["CPTCode"].ToString());
	cptValuesList1.Add(row["CPT"].ToString());
}
//remove doubletts 
cptValuesList1 = cptValuesList1.Distinct().ToList();
 
//loop thrue the second table rows and collect cpt values
List<string> cptValuesList2 = new List<string>();
foreach (DataRow row in table2.Rows)
{	
	cptValuesList2.Add(row["CPT"].ToString());
}
//remove doubletts 
cptValuesList2 = cptValuesList2.Distinct().ToList();
 
//get intersected values 
List<string> intersectList = cptValuesList1.Intersect(cptValuesList2);
.
.
//now use the snippets abow to mark you interesected values

0 Ответов