abisheak Balaji Ответов: 0

Предложение структуры данных


Привет,

Может ли кто-нибудь предложить подходящую структуру данных для приведенной ниже проблемы:

У меня есть заголовки строк и столбцов ... и пересекающиеся ячейки имеют свои соответствующие значения.

Примечание: имена col и имена строк также должны быть сохранены.
Один Б С Д
Е 1 2 3 4
Б 5 6 7 8


Я извлекаю данные из листа excel с помощью Apache POI и SAX parser. Во время извлечения мне нужно вывести данные в вышеуказанном формате.

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

Пример кода :
createPDF.addTableContent(incident, "Open", 1);
		createPDF.addTableContent(incident, pe.getOValue("Open&Assigned to Resolver"), 2);
		createPDF.addTableContent(incident, pe.getOValue("Open&Business Action Required"), 1);
		createPDF.addTableContent(incident, pe.getOValue("Open&Monitoring"), 2);
		createPDF.addTableContent(incident, pe.getOValue("Open&Reopened"), 1);
		createPDF.addTableContent(incident, pe.getOValue("Open&Requestor Action required"), 2);
		createPDF.addTableContent(incident, pe.getOValue("Open&RFC Implementation"), 1);
		createPDF.addTableContent(incident, pe.getOValue("Open&Work In Progress"), 2);
		createPDF.addTableContent(incident, Integer.toString(pe.getTotalCount("Open")), 1);	
		
		createPDF.addTableContent(incident, "In Progress", 1);
		createPDF.addTableContent(incident, pe.getOValue("In Progress&Assigned to Resolver"),2);
		createPDF.addTableContent(incident, pe.getOValue("In Progress&Business Action Required"),1);
		createPDF.addTableContent(incident, pe.getOValue("In Progress&Monitoring"), 2);
		createPDF.addTableContent(incident, pe.getOValue("In Progress&Reopened"), 1);
		createPDF.addTableContent(incident, pe.getOValue("In Progress&Requestor Action required"), 2);
		createPDF.addTableContent(incident, pe.getOValue("In Progress&RFC Implementation"), 1);
		createPDF.addTableContent(incident, pe.getOValue("In Progress&Work In Progress"), 2);
		createPDF.addTableContent(incident, Integer.toString(pe.getTotalCount("In Progress")), 1);
		
		createPDF.addTableContent(incident, "Pending", 1);
		createPDF.addTableContent(incident, pe.getOValue("Pending&Assigned to Resolver"), 2);
		createPDF.addTableContent(incident, pe.getOValue("Pending&Business Action Required"), 1);
		createPDF.addTableContent(incident, pe.getOValue("Pending&Monitoring"), 2);
		createPDF.addTableContent(incident, pe.getOValue("Pending&Reopened"), 1);
		createPDF.addTableContent(incident, pe.getOValue("Pending&Requestor Action required"), 2);
		createPDF.addTableContent(incident, pe.getOValue("Pending&RFC Implementation"), 1);
		createPDF.addTableContent(incident, pe.getOValue("Pending&Work In Progress"), 2);
		createPDF.addTableContent(incident, Integer.toString(pe.getTotalCount("Pending")), 1);

Текущий метод, который я пробовал, - это объединение имени col и строки с помощью "&" и сохранение его значения в хэш-карте.

Например : A&E=1, B&B=6

Проблема, с которой я столкнулся в настоящее время
когда я хочу извлечь значение из хэш-карты, мне приходится использовать обработку строк. Если я хочу получить количество col A, я должен повторить и разделить имена col и строк и добавить значения. Если мне нужно получить счет для строки E, я снова должен сделать то же самое.

Существует ли какой-либо эффективный способ его достижения?

Совместное использование результатов моего текущего решения. Данные извлекаются из excel и должны отображаться пользователю следующим образом :
https://pasteboard.co/I1AwMsl.png[^]

Спасибо,
Баладжи

Kornfeld Eliyahu Peter

Вы должны подумать о способах доступа, которые вы будете использовать для чтения данных - если известно, что они просты, вы можете получить более простую структуру, в противном случае она может быть более сложной...

abisheak Balaji

Спасибо Корнфельду. Допустим, я хочу получить общее количество столбцов и строк, не используя много итераций. Есть какие-то конкретные причины для этого ?

Kornfeld Eliyahu Peter

Это означает, что вам нужно получить доступ к вашим данным по строкам, столбцам и ячейкам... Таким образом, ваши данные должны быть двумерным массивом (например, таблицей)...
Вы можете создать один и только один конверт между ABC в 123 и обратно... Это было бы очень просто...

0 Ответов