
شما چندین دفتر کار Excel (XLSX، XLS) دارید و میخواهید آنها را به یک فایل برای گزارشگیری یا نگهداری دادهها در یک مکان ادغام کنید. به عنوان یک توسعهدهنده جاوا، میتوانید به راحتی چندین فایل Excel را به یک فایل به صورت برنامهنویسی ادغام کنید. در این مقاله، شما یاد خواهید گرفت که چگونه چندین فایل Excel را با استفاده از Java به یک فایل ترکیب کنید.
موضوعات زیر در این مقاله مورد بحث و بررسی قرار گرفتهاند:
- Java API برای ترکیب فایلهای اکسل
- چندین فایل اکسل را با استفاده از Java ترکیب کنید
- چگونگی ترکیب برگههای خاص چندین فایل اکسل به یک فایل با استفاده از جاوا
- چندین برگه را با استفاده از Java به یک برگه ادغام کنید.
- ستونهای چندین برگه را با استفاده از Java به یک ستون ادغام کنید.
API Java برای ادغام فایلهای اکسل
برای ترکیب چندین Excel فایل، من از Aspose.Cells for Java API استفاده خواهم کرد. این API به شما اجازه میدهد تا بدون وابستگی به Microsoft Excel، صفحات گسترده را ایجاد، دستکاری، تبدیل، محافظت یا چاپ کنید. این امکان را به شما میدهد تا قابلیتهای اتوماسیون Excel را به صورت برنامهنویسی در برنامههای Java خود انجام دهید.
شما میتوانید download JAR API را دانلود کنید یا فقط پیکربندی زیر را در pom.xml برنامه Java مبتنی بر Maven خود اضافه کنید تا مثالهای کد ذکر شده در زیر را امتحان کنید.
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-cells</artifactId>
<version>21.8</version>
</dependency>
Java ترکیب چندین فایل اکسل در یک فایل
شما میتوانید به راحتی چندین فایل اکسل را به صورت برنامهنویسی در یک فایل واحد ترکیب کنید با پیروی از مراحل زیر:
- یک مورد از کلاس Workbook را با اولین فایل منبع ایجاد کنید.
- یک نمونه از کلاس Workbook را با فایل منبع دوم ایجاد کنید.
- مراحل بالا را برای ترکیب بیش از دو فایل تکرار کنید.
- متد combine() را با نمونه فایل منبع دوم فراخوانی کنید
- تکرار مرحله بالا برای تمامی فایلهای منبع یکی یکی
- خروجی فایل را با فراخوانی save() متد کلاس Workbook ذخیره کنید.
نمونه کد زیر نشان میدهد که چگونه میتوان چندین فایل Excel را به یک فایل واحد با استفاده از Java ترکیب کرد.
// Open the first excel file.
Workbook SourceBook1 = new Workbook("C:\\Files\\Quarter_1.xlsx");
// فایل اکسل دوم را باز کنید.
Workbook SourceBook2 = new Workbook("C:\\Files\\Quarter_2.xlsx");
// Open the third excel file.
Workbook SourceBook3 = new Workbook("C:\\Files\\Quarter_3.xlsx");
// ورقهای کار فایل Excel دوم را به کار کتاب اول کپی کنید.
SourceBook1.combine(SourceBook2);
// پر worksheet های فایل سوم اکسل به کتاب کار اول.
SourceBook1.combine(SourceBook3);
// فایل اکسل اول بهروزرسانیشده را به عنوان یک فایل جدید ذخیره کنید.
SourceBook1.save("C:\\Files\\CombinedFile.xlsx");

چندین فایل اکسل را با استفاده از Java ترکیب کنید
کلاس Workbook API کلاس اصلی است که برای ایجاد یک صفحهگسترده Excel استفاده میشود. این امکان را فراهم میکند که فایلهای اصل Excel را باز و ذخیره کنید. همچنین چندین خاصیت و متد برای کار با صفحهگسترده Excel ارائه میدهد. متد combine() این کلاس، کتابخانه جاری را با یک شیء Workbook دیگر ترکیب میکند. متد save() کلاس Workbook فایل خروجی را در مسیر فایل مشخص شده ذخیره میکند.
ترکیب برگههای خاص چند فایل اکسل به یک فایل - راهنمای Java
شما میتوانید به سادگی شیتهای خاصی را از چندین فایل اکسل به صورت برنامهنویسی در یک فایل واحد ترکیب کنید با دنبال کردن مراحل ذکر شده در زیر:
- یک نمونه از کلاس Workbook را برای فایل منبع 1 ایجاد کنید.
- یک نمونه از کلاس Workbook برای فایل منبع 2 ایجاد کنید.
- تکرار مرحله بالا برای ترکیب کاربرگها از بیشتر از دو فایل
- یک نمونه از کلاس Workbook را برای فایل مقصد ایجاد کنید
- Add worksheet(s) using add() method of the WorksheetCollection class
- متد copy() را برای کپی کردن برگه مشخص شده از فایل منبع 1 به فایل مقصد فراخوانی کنید.
- متد copy() را برای کپی کردن worksheet مشخص شده از فایل منبع 2 به فایل مقصد فراخوانی کنید.
- برگهای کاری را در فایل مقصد با استفاده از روش setName() تغییر نام دهید.
- فایل مقصد را با فراخوانی متد save() از کلاس Workbook ذخیره کنید.
نمونه کد زیر نشان میدهد که چگونه میتوان برگههای خاصی را از چندین فایل Excel به یک فایل واحد با استفاده از Java ترکیب کرد.
String sourceFile1 = "Quarter_1.xlsx";
String sourceFile2 = "Quarter_2.xlsx";
// Open the first Excel file.
Workbook excelA = new Workbook("C:\\Files\\" + sourceFile1);
// فایل اکسل دوم را باز کنید.
Workbook excelB = new Workbook("C:\\Files\\" + sourceFile2);
// Create destination Workbook.
Workbook destWorkbook = new Workbook();
// First worksheet is added by default to the Workbook. Add the second worksheet.
destWorkbook.getWorksheets().add();
// Copy the Jan worksheet of first Excel file to destination file.
destWorkbook.getWorksheets().get(0).copy(excelA.getWorksheets().get("Jan"));
// کپی کنید برگه جول فایل دوم اکسل را به فایل مقصد.
destWorkbook.getWorksheets().get(1).copy(excelB.getWorksheets().get("Jul"));
// به طور پیش فرض، نام ورق ها "Sheet1" و "Sheet2" به ترتیب هستند.
// بیایید به آنها نامهای معناداری بدهیم.
destWorkbook.getWorksheets().get(0).setName(sourceFile1 + " - Jan");
destWorkbook.getWorksheets().get(1).setName(sourceFile2 + " - Jul");
// فایل مقصد را ذخیره کنید.
destWorkbook.save("C:\\Files\\CombinedSpecificSheetsInFile.xlsx");

ترکیب ورکشیتهای خاص از چندین فایل اکسل به یک فایل با استفاده از جاوا
متد خاصیت getWorksheets() کلاس Workbook مجموعهای از تمام برگهها را در یک Workbook برمیگرداند. شما میتوانید با استفاده از متد add() یک برگه به مجموعه برگهها اضافه کنید.
کلاس Worksheet این API نمایانگر یک ورق کار واحد است. این کلاس چندین ویژگی و روش برای کار با یک ورق کار فراهم میکند. روش copy() این کلاس محتوا و فرمتها را از ورق کار دیگری کپی میکند. کلاس ورق کار همچنین متدهای get() را برای دریافت یک ورق کار خاص بر اساس ایندکس یا نام آن فراهم میکند. روش ویژگی setName() نام ورق کار را تنظیم میکند.
ادغام چندین شیت در Java به یک شیت واحد
شما میتوانید بهراحتی چندین ورق کاری از یک فایل اکسل را بهطور برنامهنویسی به یک ورق کاری واحد ادغام کنید با دنبال کردن مراحل ذکر شده در زیر:
- یک نمونه از کلاس Workbook برای فایل منبع ایجاد کنید
- یک برگه جدید با استفاده از روش add() اضافه کنید
- روی برگههای منبع تکرار کنید و موارد زیر را انجام دهید:
- یک دامنه از سلولها و ستونها برای یک ورق کار با استفاده از روش createRange() ایجاد کنید.
- دادهها را از یک بازه منبع به بازه مقصد با استفاده از روش copy() کپی کنید.
- خروجی فایل را با فراخوانی save() متد کلاس Workbook ذخیره کنید.
کد نمونه زیر نشان میدهد که چگونه چندین برگه را با استفاده از Java به یک برگه ادغام کنید.
// یک فایل اکسل باز کنید که شامل برگههای زیر باشد:
// Jan, Feb, Mar, and Apr
Workbook workbook = new Workbook("C:\\Files\\Quarter_1.xlsx");
// Add a worksheet named Summarysheet
Worksheet summarySheet = workbook.getWorksheets().add("Summary_sheet");
// از برگههای منبع برای کپی دادهها به
// ورق خلاصه
String[] nameOfSourceWorksheets = { "Jan", "Feb", "Mar", "Apr" };
int totalRowCount = 0;
for (String sheetName : nameOfSourceWorksheets)
{
// Get worksheet
Worksheet sourceSheet = workbook.getWorksheets().get(sheetName);
Range sourceRange = null;
Range destRange = null;
// در مورد صفحه کار ژانویه، تمام ردیفها و ستونها را شامل کنید.
if (sheetName.equals("Jan"))
{
sourceRange = sourceSheet.getCells().getMaxDisplayRange();
destRange = summarySheet.getCells().createRange(
sourceRange.getFirstRow() + totalRowCount,
sourceRange.getFirstColumn(),
sourceRange.getRowCount(),
sourceRange.getColumnCount());
}
// In case of other worksheets,
// exclude the first row (which contains headings).
else
{
int mdatarow = sourceSheet.getCells().getMaxDataRow(); // Zero-based
int mdatacol = sourceSheet.getCells().getMaxDataColumn(); // Zero-based
sourceRange = sourceSheet.getCells().createRange(0 + 1, 0, mdatarow, mdatacol + 1);
destRange = summarySheet.getCells().createRange(
sourceRange.getFirstRow() + totalRowCount -1,
sourceRange.getFirstColumn(),
sourceRange.getRowCount(),
sourceRange.getColumnCount());
}
// کپی کردن دادهها، قالببندی، اشیاء ترسیمی و غیره از یک
// range منبع به range مقصد.
destRange.copy(sourceRange);
totalRowCount = sourceRange.getRowCount() + totalRowCount;
}
// کتاب کار را ذخیره کنید
workbook.save("C:\\Files\\Summarized.xlsx");

چندینworksheet را با استفاده از Java به یک worksheet ادغام کنید.
متد خاصیت getCells() از کلاس Worksheet مجموعهای از Cells موجود در برگه کار را فراهم میکند. کلاس Cells از API نمایانگر مجموعهای از اشیاء مرتبط با یک سلول، مانند Cell، Row و غیره است. متد خاصیت getMaxDisplayRange() از کلاس Cells حداکثر محدودهای را که شامل دادهها، سلولهای ادغام شده و اشکال است، ارائه میدهد. کلاس Range نمایانگر یک محدوده از سلولها در یک صفحهگسترده است.
کلاس Cells شامل روشهای زیر برای ایجاد یک محدوده از سلولها است:
- createRange(int firstIndex, int number, boolean isVertical) متد برای ایجاد یک شی Range از ردیفهای سلولها یا ستونهای سلولها.
- createRange(int firstRow, int firstColumn, int totalRows, int totalColumns) متد برای ایجاد یک شیء Range از یک بازه از سلولها.
- متد createRange(java.lang.String address) یک شیء Range از یک آدرس محدوده ایجاد میکند.
- متد createRange(java.lang.String upperLeftCell, java.lang.String lowerRightCell) یک شیء Range را از یک محدوده سلولها ایجاد میکند.
متد copy() کلاس Range تمام انواع دادهها (شامل فرمولها)، فرمتبندی، اشیاء ترسیمی و غیره را از یک بازه منبع به بازه مقصد کپی میکند.
ستونهای چندین کاربرگ را در یک ستون واحد با استفاده از Java تجمیع کنید.
شما میتوانید به راحتی ستونهای چندین worksheet را بهطور برنامهنویسی در یک worksheet واحد ادغام کنید با دنبال کردن مراحل زیر:
- یک نمونه از کلاس Workbook برای فایل منبع ایجاد کنید
- یک برگه جدید با استفاده از روش add() اضافه کنید
- روی برگههای منبع تکرار کنید و موارد زیر را انجام دهید:
- تمامی ستونها را یکی یکی با استفاده از روش copyColumn() با سلولهای کاربرگهای مبدا و شاخص ستون کپی کنید.
- خروجی فایل را با فراخوانی save() متد کلاس Workbook ذخیره کنید.
نمونه کد زیر نشان میدهد که چگونه میتوان ستونهای چندین شیت را به یک شیت در زبان Java تجمیع کرد.
// یک دفتر کار را باز کنید.
Workbook workbook = new Workbook("C:\\Files\\sample.xlsx");
// یک برگه به نام Summarysheet اضافه کنید
Worksheet summarySheet = workbook.getWorksheets().add("Summary_sheet");
// بر روی برگهها تکرار کنید تا ستونها را کپی کنید به
// برگه خلاصه
String[] nameOfSourceWorksheets = { "Products", "Sales", "Customers" };
int totalCol = 0;
for (String sheetName : nameOfSourceWorksheets) {
Worksheet sourceSheet = workbook.getWorksheets().get(sheetName);
if (sheetName.equals("Products")) {
// مجموعه ستون های ورق کار را دریافت کنید
ColumnCollection columns = sourceSheet.getCells().getColumns();
// copy column to summaySheet
for (Column column : (Iterable<Column>) columns)
{
summarySheet.getCells().copyColumn(sourceSheet.getCells(), column.getIndex(), totalCol);
totalCol = totalCol + 1;
}
}
else {
// مجموعه ستون های ورق کار را دریافت کنید
ColumnCollection columns = sourceSheet.getCells().getColumns();
// copy column to summaySheet
for (Column column : (Iterable<Column>) columns)
{
summarySheet.getCells().copyColumn(sourceSheet.getCells(), column.getIndex(), totalCol);
totalCol = totalCol + 1;
}
}
}
// Save the excel file.
workbook.save("C:\\Files\\CopyingColumns_out.xlsx");

ادغام ستونهای چندین ورکشیت به یک ستون با استفاده از جاوا
متد خاصیت getColumns() کلاس Cells مجموعهای از ستونهای موجود در صفحهگسترده را ارائه میدهد. کلاس ColumnCollection مجموعهای از ستونهای فردی در یک صفحهگسترده را نشان میدهد، در حالی که کلاس Column یک ستون واحد در یک صفحهگسترده را نمایش میدهد.
متد copyColumn() کلاس Cells دادهها و فرمتهای یک ستون کامل را کپی میکند. کلاس Cells همچنین متدهای overloaded copyColumn() را برای کپی دادهها با گزینههای چسباندن، شماره ستون، منبع و کل ستونهای مقصد و غیره ارائه میدهد.
یک مجوز رایگان بگیرید
شما میتوانید بدون محدودیتهای ارزیابی، API را با درخواست یک مجوز موقت رایگان امتحان کنید.
نتیجهگیری
در این مقاله، شما یاد گرفتید که چگونه چندین فایل اکسل را در یک فایل ترکیب کنید. همچنین یاد گرفتید که چگونه برگههای خاص چندین فایل اکسل را با استفاده از Java ترکیب کنید. علاوه بر این، شما یاد گرفتید که چگونه چندین برگه را به طور برنامهنویسی به یک برگه واحد ادغام کنید. این مقاله همچنین توضیح داد که چگونه ستونهای چندین برگه را با استفاده از Java به یکی تبدیل کنید. شما میتوانید با استفاده از documentation بیشتر در مورد Aspose.Cells for Java API یاد بگیرید. در صورت وجود هرگونه ابهام، لطفاً به راحتی با ما در forum تماس بگیرید.