Data Export
Comprehensive guide to exporting author statistics and publication data in multiple formats.
Export Formats
The system supports exporting data in three formats, each optimized for different use cases.
Excel (.xlsx)
- Styled and formatted
- Multiple sheets
- Color-coded ratings
- Charts and statistics
- Best for presentations
Word (.docx)
- Formatted document
- Statistics tables
- Publication lists
- Ready for reports
- Best for documentation
CSV (.csv)
- Plain text format
- Comma-separated values
- Universal compatibility
- Easy to import
- Best for data analysis
// Export formats available
export type ExportFormat = 'excel' | 'word' | 'csv';
// File naming convention
const getFileName = (type: ExportFormat) => {
const extension = type === "excel" ? "xlsx"
: type === "word" ? "docx"
: "csv";
return `MTMT_${author.name.replace(/\s+/g, "_")}_${formatDate()}.${extension}`;
};
// Example: MTMT_John_Doe_2024-01-15.xlsxFile Naming Convention
All exported files follow a consistent naming pattern for easy identification and organization.
Format:
MTMT_[AuthorName]_[Date].[extension]Examples
MTMT_John_Doe_2024-01-15.xlsxMTMT_Maria_Smith_2024-01-15.docxMTMT_Dr_Peter_Kovacs_2024-01-15.csv
Note: Spaces in author names are replaced with underscores, and the date format is YYYY-MM-DD (ISO 8601).
Customizable Headers
You can select which columns/fields to include in your export, with separate preferences saved for each format (Excel, Word, CSV).
Available Headers
- year: Publication year
- title: Publication title
- authors: All co-authors
- journalBook: Journal or book name
- type: Publication type
- scientific: Scientific status (Yes/No)
- rating: Rating (D1, Q1-Q4, N/A)
- if: Impact Factor
- qScore: Q Score value
- iScore: I Score value
- citations: Total citations
- scientificCitations: Scientific citations
- share: Author share
- url: Publication URL
- mtmtId: MTMT publication ID
- norwayLevel: Norway list level
- hasISBNISSN: ISBN/ISSN availability
Header Persistence
Your header selections are automatically saved to browser localStorage, so your preferences are remembered across sessions. Each format (Excel, Word, CSV) maintains its own selection.
// Header selection and persistence
const defaultHeaders: ExportHeader[] = [
{ key: 'year', label: 'Year' },
{ key: 'title', label: 'Title' },
{ key: 'authors', label: 'Authors' },
{ key: 'journalBook', label: 'Journal/Book' },
{ key: 'type', label: 'Type' },
{ key: 'rating', label: 'Rating' },
{ key: 'if', label: 'Impact Factor' },
{ key: 'qScore', label: 'Q Score' },
{ key: 'iScore', label: 'I Score' },
// ... more headers
];
// Persist selections in localStorage
const [headerSelections, setHeaderSelections] = useState(() => {
const saved = localStorage.getItem('export-header-selections');
return saved ? JSON.parse(saved) : {
excel: defaultHeaders.map(h => h.key),
word: defaultHeaders.map(h => h.key),
csv: defaultHeaders.map(h => h.key),
};
});
useEffect(() => {
localStorage.setItem('export-header-selections', JSON.stringify(headerSelections));
}, [headerSelections]);Basic Information Section
All export formats include a basic information section with author details and summary statistics.
Author Information
- Name: Author's full name (with homepage link in Excel/Word)
- MTMT ID: Author's MTMT identifier (with profile link in Excel/Word)
- Last Update: Timestamp of when the analysis was performed
- IFList version: Year of the Impact Factor list used
- NorwayList version: Year of the Norway list used
The Norway list contains journals with quality ratings (0-2 scale). By default, publications from journals with Level 0 rating are included in all calculations. You can enable exclusion via the toggle switch on the statistics page. When exclusion is enabled, Level 0 publications do not contribute to Q-score or I-score calculations or Impact Factor calculations. The norwayLevel field indicates the rating level (0-2 scale) for journals in this list, where 0 = bad (can be excluded from Q/I scores and rankings or Impact Factor calculations when exclusion is enabled), 1 = normal, and 2 = good.
Summary Statistics
Total Statistics
- Total Scientific Publications
- Total Scientific Citations
- H-Index
- I Score
- I Score WOS
Impact Factor Statistics
- Total Impact Factor
- Relative Impact Factor
- Publications with IF
Q Score Statistics
- Total Q Score
- Q Score from Articles
- Q Score from Books
// Basic data structure for export
interface BasicData {
name: string;
mtmtId: string;
homepage: string;
mtmtProfile: string;
lastUpdate: string;
ifListVersionYear: number | null;
norwayListVersionYear: number | null;
totalStats: {
publications: number;
scientificCitations: number;
hIndex: number;
iScore: number;
iScoreWOS: number;
};
impactFactorStats: {
total: number;
relative: number;
publicationsWithIF: number;
};
qScores: {
total: number;
fromArticles: number;
fromBooks: number;
};
}Publication Data Export
Each publication in the export includes all selected fields, with data extracted from the Publication object and formatted appropriately.
Data Extraction
Publication data is extracted using the getPublicationData function, which maps each header key to the corresponding publication property or calculated value.
Note: Some fields like Q Score and I Score are calculated during analysis, while others like title and year come directly from the MTMT API data.
// Publication data extraction
const getPublicationData = (pub: Publication, header: string, mtmtId: string) => {
const dataMap: { [key: string]: any } = {
year: pub.publishedYear,
title: pub.title,
authors: pub.authorships?.map(a =>
a.author?.label || `${a.familyName} ${a.givenName}`
).join(", "),
journalBook: pub.journal?.label || pub.book?.title || "",
type: pub.getPublicationType(translations),
scientific: pub.isScientific() ? 'Yes' : 'No',
rating: pub.getRating(""),
if: pub.IFindex || "",
qScore: pub.qscore?.toFixed(3) || "",
iScore: pub.iscore || "",
citations: pub.citationCount || 0,
scientificCitations: pub.scientificCitationCount || 0,
share: pub.getAuthorShare(mtmtId).toFixed(3),
url: pub.identifiers?.[0]?.realUrl || "",
mtmtId: pub.mtid || "",
hasISBNISSN: pub.hasISBNISSN === false ? 'No' : 'Yes',
norwayLevel: typeof pub.norwayLevel === 'number' ? pub.norwayLevel : "",
};
return dataMap[header];
};Data Formatting
- Numeric values: Q Score and Author Share are formatted to 3 decimal places
- Boolean values: Scientific status and ISBN/ISSN are converted to "Yes"/"No"
- Empty values: Missing data is represented as empty strings or 0
- CSV escaping: Strings containing commas or quotes are properly escaped
Excel-Specific Features
Excel exports include enhanced formatting, styling, and multiple sheets for comprehensive data presentation.
Sheet Structure
- Basic Information: Author details and summary statistics with styling
- Publications: Full publication list with selected columns
Styling Features
- Color-coded ratings: D1 (green), Q1 (blue), Q2 (yellow), Q3 (orange), Q4 (red)
- Bold headers: Column headers are bold and styled
- Hyperlinks: Author homepage and MTMT profile links are clickable
- Section headers: Basic info section has styled title
- Auto-width columns: Columns are automatically sized to fit content
Library: Excel export uses xlsx-js-style for styling support.
Word-Specific Features
Word exports create formatted documents suitable for reports and documentation.
Document Structure
- Title section: Formatted title with author information
- Statistics tables: Summary statistics in formatted tables
- Publication list: Publications in a formatted table with selected columns
Library: Word export uses docx library for document generation.
CSV-Specific Features
CSV exports provide a simple, universal format that can be imported into any spreadsheet or data analysis tool.
CSV Format
- Comma-separated: Values separated by commas
- Quoted strings: Text values are quoted to handle commas and special characters
- Escaped quotes: Double quotes within strings are escaped as ""
- UTF-8 encoding: Supports international characters
CSV Structure
- Basic information section (key-value pairs)
- Empty row separator
- Header row with column names
- Data rows (one per publication)
// CSV Export implementation
const exportToCSV = () => {
const selectedHeaders = headerSelections.csv;
// Basic info section
const basicData = getBasicData(author, stats, meta);
const metaRows = [
'Basic Information',
`Name,"${basicData.name}"`,
`MTMT ID,${basicData.mtmtId}`,
`Last Update,${basicData.lastUpdate}`,
`IFList version,${basicData.ifListVersionYear ?? ''}`,
`NorwayList version,${basicData.norwayListVersionYear ?? ''}`,
''
];
// Header row
const headerLabels = selectedHeaders.map(key =>
defaultHeaders.find(h => h.key === key)?.label || key
);
let csvContent = metaRows.join("\n") + "\n" + headerLabels.join(",") + "\n";
// Data rows
publications.forEach(pub => {
const row = selectedHeaders.map(header => {
const value = getPublicationData(pub, header, author.mtid);
return typeof value === 'string'
? `"${value.replace(/"/g, '""')}"`
: value;
}).join(",");
csvContent += row + "\n";
});
const blob = new Blob([csvContent], { type: "text/csv;charset=utf-8;" });
saveAs(blob, getFileName("csv"));
};Usage Guidelines
Best Practices
- Select relevant headers: Only include columns you need to keep file sizes manageable
- Use Excel for presentations: Best for visual reports and sharing with others
- Use CSV for analysis: Import into Python, R, or other data analysis tools
- Use Word for reports: Best for formal documentation and academic reports
File Size Considerations
For authors with many publications, consider:
- Reducing the number of selected headers
- Using CSV format for large datasets (smaller file size)
- Excel/Word files may be larger due to formatting and styling