728x90
νΌ λμμΈ
β Textbox : (Name) txtInput Readonly true
β Button : (Name) btnUpload Text file μ ν
β Checkbox : (Name) chkSheetYn Checked True
β Textbox : (Name) txtSheetS Readonly True
β Button : (Name) btnConvert Text Excel to PDF λ³ν
μμ€ μ½λ
using System;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
/* 1. excel νμΌμ λΆλ¬μ
* 2. ν΄λΉ κ²½λ‘+ μ΄λ¦μ pdf λ₯Ό λΆμΈ μ΄λ¦μΌλ‘
* 3. μ μ₯νλ€.
*/
namespace exceltopdf
{
public partial class Form1 : Form
{
// input νμΌμ κ²½λ‘λ₯Ό μ μ₯ν΄λ λ³μ μμ± ν μ΄κΈ°ν
string file_path = null;
public Form1()
{
InitializeComponent();
}
private void btnUpload_Click(object sender, EventArgs e)
{
txtInput.Clear();
file_path = null;
// openFileDialogμ μμ μμΉλ₯Ό C:\\ μΌλ‘ μ€μ
openFileDialog1.InitialDirectory = "C:\\";
// openFileDialog κ²μ μ μμ
νμΌλ§ κ²μνλλ‘ μ§μ ν΄λλ€.
openFileDialog1.Filter = "μμ
νμΌ (*.xlsx)|*.xlsx|μμ
νμΌ (*.xls)|*.xls";
// νμΌ μ° κ² νμΈ μ§ννμ¬ κ²°κ³Ό κ°μ΄ λ§μΌλ©΄ μννλ€.
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
// νμΌμ νκΈ°μμ κ°μ Έμ¨ νμΌ κ²½λ‘λ₯Ό file_path λ³μμ μ μ₯ν΄λλ€.
file_path = openFileDialog1.FileName;
// txtinput μ νμΌ μ΄λ¦ 보μ¬μ£ΌκΈ° μν μ½λ
txtInput.Text = file_path.Split('\\')[file_path.Split('\\').Length - 1];
}
}
private void btnConvert_Click(object sender, EventArgs e)
{
if (file_path != null)
{
// pdf νμΌμ μ μ₯ν κ²½λ‘λ₯Ό μ§μ ν΄μ€λ€.
// νμ¬λ κ°μ κ²½λ‘μ κ°μ νμΌλͺ
μ΄λ¦μ ννλ‘ νμ₯μλ§ λ³κ²½λμ΄ μ μ₯λλ€.
string export_path = file_path.Split('.')[0] + ".pdf";
Console.WriteLine(txtSheetS.Text);
Console.WriteLine(txtSheetE.Text);
// μμ
λΆλ¬μ΄
Excel.Application excel = new Excel.Application();
// μμ
νλ©΄ λμ°λ μ΅μ
. falseλ‘ λμ°μ§ μλλ€.
excel.Visible = false;
// μμμ λΆλ¬μ¨ μμ
μ μ°λ€. open(μ΄κ³ μΆμ νμΌ κ²½λ‘, νμΌ μ€ν μ ReadOnly μ¬λΆ, Password κ±Έλ €μμ μ νμΈ λ©μΈμ§μ°½ λμΈκ±΄μ§)
Excel.Workbook workbook = excel.Workbooks.Open(file_path, true, true);
Console.WriteLine("Number of sheets: " +workbook.Worksheets.Count);
// 체ν¬λ°μ€ μ²΄ν¬ μ¬λΆ νμΈ (true) -- μ 체 λ³ν μ μ 체μνΈ excel to pdf μ€ν
if (chkSheetYN.Checked)
{
// μμμ μ° μμ
μ pdfλ‘ λ³ννμ¬ μ μ₯νλ€.
workbook.ExportAsFixedFormat(Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF, export_path, Microsoft.Office.Interop.Excel.XlFixedFormatQuality.xlQualityStandard, true, true, Type.Missing, Type.Missing, true, Type.Missing);
// μ€ννλ λͺ¨λ νμΌλ€μ λ«λλ€.
workbook.Close(false);
excel.Quit();
// μλ£ μ νλ³μ μν΄ μλ£ λ©μΈμ§λ₯Ό λμμ€λ€.
MessageBox.Show(file_path.Split('\\')[file_path.Split('\\').Length - 1].Split('.')[0] + " λ³ν μλ£");
}
// 체ν¬λ°μ€ μ²΄ν¬ μ¬λΆ νμΈ (false) -- ν
μ€νΈλ°μ€ μ«μ νμΈν΄μ ν΄λΉ μνΈλ§ excel to Pdf μ€ν
else {
// μνΈκ°μλ³΄λ€ ν° μνΈ λ²νΈλ₯Ό μ
λ ₯νμ λ κ·Έλ₯ λ±μ΄λ²λ¦Ό
if (Int32.Parse(txtSheetS.Text) > workbook.Worksheets.Count)
{
MessageBox.Show("1)μνΈ κ°μ 2)λ³ννκΈ°λ₯Ό μνλ μνΈμ λ²νΈ νμΈ.");
}
else
{
// μ
λ ₯ λ°μ μ«μ μ΄μ©νμ¬ excel to pdf μ€ν
Excel.Worksheet worksheet1 = workbook.Worksheets.Item[Int32.Parse(txtSheetS.Text)];
worksheet1.ExportAsFixedFormat(Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF, export_path, Microsoft.Office.Interop.Excel.XlFixedFormatQuality.xlQualityStandard, true, true, Type.Missing, Type.Missing, true, Type.Missing);
workbook.Close(false);
excel.Quit();
// μλ£ μ νλ³μ μν΄ μλ£ λ©μΈμ§λ₯Ό λμμ€λ€.
MessageBox.Show(file_path.Split('\\')[file_path.Split('\\').Length - 1].Split('.')[0] +" " + " λ³ν μλ£");
}
}
}
else
{
// fileμ΄ μμ λ λ²νΌ ν΄λ¦νλ©΄ λμx : μλ¬ λ©μΈμ§ ννλ‘ μ 곡νλ€.
MessageBox.Show("λ¨Όμ Input fileμ μ§μ ν΄μ£ΌμΈμ.");
}
}
private void chkSheetYN_CheckedChanged(object sender, EventArgs e)
{
if (chkSheetYN.Checked)
{
// 체ν¬κ° λμ΄μμΌλ©΄ μνΈ μ μ΄μ£Όλ textbox μ΄κΈ°ν + readonly
txtSheetS.Text = null;
txtSheetS.ReadOnly = true;
}
else
{
// 체ν¬κ° μλμ΄ μμΌλ©΄ textbox μμ± κ°λ₯νλλ‘
txtSheetS.ReadOnly = false;
}
}
}
}
κΈ°ν κΈ°λ₯ μ€μ μ΄ νμνλ€λ©΄
Worksheet.ExportAsFixedFormat λ©μλ 곡μ docs
λ₯Ό λ³΄κ³ λ³ν μμΌλ³΄λλ‘ νμ.
κ²°κ³Όλ¬Ό
νΉμ§ λ° μμ¬μ
- (μμ§μ) 1κ°μ input λ§ κ°λ₯νλ€. - λ°°μ΄μ μ¬μ©νμ¬ μ¬λ¬κ° input μ¬λ¬κ° output μ νλλ‘ ν΄μΌκ² λ€
- κ°μ μ΄λ¦μΌλ‘ μ μ₯λλ€. μ μ₯κ²½λ‘λ₯Ό μ§μ ν μ μλλ‘ νλ κ²μ μ΄λ¨κΉ?
- κ·Έλ₯ λͺ¨λ μνΈλ₯Ό νλ²μ pdfν μν€κ±°λ μ§μ λ μνΈ νκ°λ§ 보λΈλ€.. λ²μ μ§μ νμ¬ pdf ν νλ λ°©λ² ?
μΈν°λ· κ²μν΄λ³΄λ μ¬μ보μ΄λ λ°©λ²λ€μ κ°μ Έλ€μ°λ©΄ λ°λ‘ λ κ² μ²λΌ λͺ¨μμλ₯Ό ν΄λκ³ λ
λ€ μ λ£κ²°μ λ₯Ό νλΌκ³ νλλΌ πΈπΈπΈπΈπΈ
μμ μμ¬μ λ€μ μμ νκ² λλ©΄ κ²μκΈμ μμ νμ¬ λ³΄μνλλ‘ ν΄λ³΄κ² λ€.
728x90