சி ஷார்ப்பில் எவ்வாறு எக்ஸல் ஃபைல் உருவாக்குவது
எப்படி?
பின் வரும் கோடிங் ஆனது COM interop பயன்படுத்தி எவ்வாறு ஒரு
எக்ஸல் ஃபைல் உருவாக்குவதற்கு பயன்படுகின்றது. இவ்வாறு உருவாக்குவதற்கு நம்
கணினியில் எக்ஸல் நிறுவப்பட்டிருக்க வேண்டும்.
Excel Library
இதற்கு visual c# project-ல் Microsoft Excel 15.0 Object Library என்கின்ற
ரெஃபரென்ஸ் சேர்க்க பட்டிருக்க வேண்டும்.
புதிதாக c# ப்ரொஜெக்ட் உருவாக்கி அதில் command button ஒன்றை
ஃபார்மில் சேர்த்துக் கொள்ளவும்.
COM Interop பயன்படுத்தி எவ்வாறு Excel Spreadsheet உருவாக்குவது எப்படி?
விசுவல்
ஸ்டுடியோவில் project –மெனுவில் இருந்து add reference என்பதை செலெக்ட் செய்து Microsoft Excel 15.0 Object Library என்பதை (இடது புறம் COM என்பதை செலெக்ட் செய்யவும்).
Select and click OK
button
நிரல்
மூலம் எக்ஸல் ஃபைல் உருவாக்குவது எப்படி?
முதலில் Excel application
Object ஒன்றினை உருவாக்கவும்.
Excel.Application
xlApp = new
Microsoft.Office.Interop.Excel.Application();
இதற்கு முன் நம் கணினியில் எக்ஸ்ல் நிறுவப் பட்டிருக்கின்றதா
என்பதை உறதிப் படுத்திக் கொள்ளவும்.
if (xlApp
== null)
{
MessageBox.Show("Excel is not properly
installed!!");
return;
}
இப்போது ஒரு வொர்க் புக் ஒன்றினை உருவாக்குவோம்.
xlWorkBook
= xlApp.Workbooks.Add(misValue);
இப்பொழுது வொர்க் சீட்டினை உருவாக்கவும்.
xlWorkSheet
= (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
xlWorkSheet.Cells[1,
1] = "ID";
xlWorkSheet.Cells[1,
2] = "Name";
xlWorkSheet.Cells[2,
1] = "1";
xlWorkSheet.Cells[2,
2] = "One";
xlWorkSheet.Cells[3,
1] = "2";
xlWorkSheet.Cells[3,
2] = "Two";
இப்பொழுது இரண்டாவது சீட்டை உருவாக்கவும்.
xlWorkSheet
= (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(2);
xlWorkSheet.Cells[1,
1] = "Sheet 2 content";
Excel file (SaveAs() method) சேவ் செய்தல்.
இப்பொழுது நாம் உருவாக்கிய எக்ஸல் ஃபைலை சேவ் செய்து
கொள்ளவும்.
xlWorkBook.SaveAs("your-file-name.xls");
மிகவும்
முக்கியமான விசயம் என்னவென்றால் Excel COM ஆப்ஜெக்ட் ஒவ்வொன்றையும் முடிவில் null
மதிப்பிருத்தப்பட வேண்டும்.
Marshal.ReleaseComObject
(excelWB);
Marshal.ReleaseComObject
(excelApp);
Marshal class is ஆனது System.Runtime.InteropServices என்கின்ற namespace –ல் உள்ளது.
using
System.Runtime.InteropServices;
Creating an Excel Spreadsheet Programmatically
பின் வரும் நிரல் காப்பி செய்து உங்கள் புராஜெக்டில் பேஸ்ட்
செய்யவும்.
using
System;
using System.Windows.Forms;
using
System.Runtime.InteropServices;
using
Excel = Microsoft.Office.Interop.Excel;
namespace
WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object
sender, EventArgs e)
{
Excel.Application xlApp = new
Microsoft.Office.Interop.Excel.Application();
if (xlApp == null)
{
MessageBox.Show("Excel is
not properly installed!!");
return;
}
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue =
System.Reflection.Missing.Value;
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet =
(Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
xlWorkSheet.Cells[1, 1] =
"ID";
xlWorkSheet.Cells[1, 2] =
"Name";
xlWorkSheet.Cells[2, 1] =
"1";
xlWorkSheet.Cells[2, 2] = "One";
xlWorkSheet.Cells[3, 1] =
"2";
xlWorkSheet.Cells[3, 2] =
"Two";
xlWorkBook.SaveAs("d:\\csharp-Excel.xls",
Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue,
Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue,
misValue);
xlWorkBook.Close(true, misValue,
misValue);
xlApp.Quit();
Marshal.ReleaseComObject(xlWorkSheet);
Marshal.ReleaseComObject(xlWorkBook);
Marshal.ReleaseComObject(xlApp);
MessageBox.Show("Excel file
created , you can find the file d:\\csharp-Excel.xls");
}
}
}
குறிப்பு: Microsoft.Office.Interop.Excel என்பதை இம்போர்ட் செய்ய வேண்டும்.
using Excel = Microsoft.Office.Interop.Excel;
அடுத்தது எவ்வாறு ஒரு excel file ஒன்றினை
ஒப்பன் செய்து ரீட் செய்து என்று பார்ப்போம்.புதிதாக புராஜெக்ட் உருவாக்கி ஃபார்மில் கமாண்ட் பட்டன் சேர்த்துக் கொள்ளவும்.
விசுவல்
ஸ்டுடியோவில் project –மெனுவில் இருந்து add reference என்பதை செலெக்ட் செய்து Microsoft Excel 15.0 Object Library என்பதை (இடது புறம் COM என்பதை செலெக்ட் செய்யவும்).
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Excel.Application xlApp ;
Excel.Workbook xlWorkBook ;
Excel.Worksheet xlWorkSheet ;
object misValue = System.Reflection.Missing.Value;
xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Open("csharp.net-informations.xls", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
MessageBox.Show(xlWorkSheet.get_Range("A1","A1").Value2.ToString());
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);
}
private void releaseObject(object obj)
{
try
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
obj = null;
}
catch (Exception ex)
{
obj = null;
MessageBox.Show("Unable to release the Object " + ex.ToString());
}
finally
{
GC.Collect();
}
}
}
}
How to read an Excel file using C#
எக்ஸல்
ஃபைல் ஒன்றின் நேம்டு ரேஞ்சஸ் எவ்வாறு கண்டு பிடிப்பது என்பதைக் காண்போம்
Excel.Application xlApp = new
Excel.Workbook xlWorkBook ;
Excel.Worksheet xlWorkSheet ;
Excel.Range range ;
xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Open(@"d:\csharp-Excel.xls", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
How to specify a range in Excel sheet?
குறிப்பிட்ட செல் என்றால் நிரல் வரிகள் பின் வருமாறு இருக்க வேண்டும்.
Excel.Worksheet excelSheet = workbook.ActiveSheet;
Excel.Range rng = (Excel.Range)excelSheet.Cells[10, 10];
Worksheet.get_Range Method
ஒன்றுக்கு மேற்பட்ட செல் எனில் நிரல் வரிகள் பின் வருமாறு இருக்க வேண்டும்.
Excel.Worksheet excelSheet = workbook.ActiveSheet;
Excel.Range rng = (Excel.Range) excelSheet.get_Range(excelSheet.Cells[1, 1],
excelSheet.Cells[3,3]);
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using Excel = Microsoft.Office.Interop.Excel;
namespace WindowsFormsApplication4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Excel.Application xlApp ;
Excel.Workbook xlWorkBook ;
Excel.Worksheet xlWorkSheet ;
Excel.Range range ;
string str;
int rCnt ;
int cCnt ;
int rw = 0;
int cl = 0;
xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Open(@"d:\csharp-Excel.xls", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
range = xlWorkSheet.UsedRange;
rw = range.Rows.Count;
cl = range.Columns.Count;
for (rCnt = 1; rCnt < = rw; rCnt++)
{
for (cCnt = 1; cCnt < = cl; cCnt++)
{
str = (string)(range.Cells[rCnt, cCnt] as Excel.Range).Value2;
MessageBox.Show(str);
}
}
xlWorkBook.Close(true, null, null);
xlApp.Quit();
Marshal.ReleaseComObject(xlWorkSheet);
Marshal.ReleaseComObject(xlWorkBook);
Marshal.ReleaseComObject(xlApp);
}
}
}
No comments:
Post a Comment