C#에서 Excel 파일을 여는 방법은 무엇입니까?
일부 VBA 코드를 C#로 변환하려고 합니다.저는 C#이 처음입니다.현재 폴더에서 Excel 파일을 열려고 하는데 없으면 생성합니다.저는 다음과 같은 것을 시도하고 있습니다.어떻게 하면 작동할 수 있을까요?
Excel.Application objexcel;
Excel.Workbook wbexcel;
bool wbexists;
Excel.Worksheet objsht;
Excel.Range objrange;
objexcel = new Excel.Application();
if (Directory("C:\\csharp\\error report1.xls") = "")
{
wbexcel.NewSheet();
}
else
{
wbexcel.Open("C:\\csharp\\error report1.xls");
objsht = ("sheet1");
}
objsht.Activate();
Microsoft VSTO(Visual Studio Tools for Office)를 설치해야 합니다.
VSTO는 Visual Studio 설치 관리자의 Workloads > Web & Cloud > Office/SharePoint Development에서 선택할 수 있습니다.
그런 다음 제네릭을 생성합니다.NET 프로젝트 및 참조 추가Microsoft.Office.Interop.Excel
'참조 추가...> 어셈블리' 대화 상자.
Application excel = new Application();
Workbook wb = excel.Workbooks.Open(path);
Missing.Value
불필요한 파라미터 교체를 위한 특수 반사 구조입니다.
최신 버전에서는 필요한 어셈블리 참조를 다음과 같이 부릅니다.Microsoft Excel 16.0 Object Library
최신 버전이 설치되어 있지 않은 경우 설치되어 있을 수 있습니다.Microsoft Excel 15.0 Object Library
또는 이전 버전이지만 포함하는 것과 동일한 프로세스입니다.
FileInfo fi = new FileInfo("C:\\test\\report.xlsx");
if(fi.Exists)
{
System.Diagnostics.Process.Start(@"C:\test\report.xlsx");
}
else
{
//file doesn't exist
}
private void btnChoose2_Click(object sender, EventArgs e)
{
OpenFileDialog openfileDialog1 = new OpenFileDialog();
if (openfileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
this.btnChoose2.Text = openfileDialog1.FileName;
String filename = DialogResult.ToString();
var excelApp = new Excel.Application();
excelApp.Visible = true;
excelApp.Workbooks.Open(btnChoose2.Text);
}
}
수입품
using Excel= Microsoft.Office.Interop.Excel;
using Microsoft.VisualStudio.Tools.Applications.Runtime;
다음은 C#을 사용하여 엑셀 시트를 여는 코드입니다.
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook wbv = excel.Workbooks.Open("C:\\YourExcelSheet.xlsx");
Microsoft.Office.Interop.Excel.Worksheet wx = excel.ActiveSheet as Microsoft.Office.Interop.Excel.Worksheet;
wbv.Close(true, Type.Missing, Type.Missing);
excel.Quit();
다음은 C# https://www.youtube.com/watch?v=O5Dnv0tfGv4 을 사용하여 Excel 워크시트를 여는 방법에 대한 비디오 메이트입니다.
파일을 열려면 다음을 수행합니다.
objexcel.Workbooks.Open(@"C:\YourPath\YourExcelFile.xls",
missing, missing, missing, missing, missing, missing, missing,
missing, missing, missing, missing, missing,missing, missing);
당신은 그 바보같이 보이는 '누락' 주장들을 제공해야 합니다.만약 당신이 VB로 같은 코드를 작성하고 있습니다.네트 당신은 그것들이 필요하지 않았을 것이지만, 당신은 C#에서 그것들을 피할 수 없습니다.
당신은 이렇게 열어야 합니다.
Excel.Application xlApp ;
Excel.Workbook xlWorkBook ;
Excel.Worksheet xlWorkSheet ;
object misValue = System.Reflection.Missing.Value;
xlApp = new Excel.ApplicationClass();
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);
출처 : http://csharp.net-informations.com/excel/csharp-open-excel.htm
무례한
무엇이 잘못되었는지, 또는 무엇이 실패했는지를 실행할 때도 말할 수 있다면 더 쉽게 도와줄 수 있습니다.
하지만 한눈에 봐도 당신은 몇 가지를 혼동하고 있습니다.
다음은 몇 가지 문제로 인해 작동하지 않습니다.
if (Directory("C:\\csharp\\error report1.xls") = "")
파일을 가리킨 다음 오류가 있는지 확인해야 하는 새 디렉토리 오브젝트를 만드는 것입니다.
실제로 하고 있는 것은 디렉터리()라는 함수를 호출한 다음 결과에 문자열을 할당하는 것입니다.1/ 디렉터리(string str)라는 함수가 없고 함수의 결과에 할당할 수 없기 때문에 이것은 작동하지 않습니다(변수에만 값을 할당할 수 있습니다).
적어도 이 라인에 대해 수행해야 하는 작업은 다음과 같습니다.
FileInfo fi = new FileInfo("C:\\csharp\\error report1.xls");
if(!fi.Exists)
{
// Create the xl file here
}
else
{
// Open file here
}
엑셀 코드가 작동하지 않는 이유는 구글이 제공할 수 있는 엑셀 라이브러리 문서를 확인해야 합니다.
Microsoft.Office.Interop.Excel.Application excapp;
excapp = new Microsoft.Office.Interop.Excel.Application();
object misval=System.Reflection.Missing.Value;
Workbook wrkbuk = new Workbook();
Worksheet wrksht = new Worksheet();
wrkbuk = excapp.Workbooks._Open(@"C:\Users\...\..._template_v1.0.xlsx", misval, misval,
misval, misval, misval, misval, misval, misval, misval, misval, misval, misval);
wrksht = (Microsoft.Office.Interop.Excel.Worksheet)wrkbuk.Worksheets.get_Item(2);
이것은 상업적인 애플리케이션입니까, 아니면 취미가 있는/오픈 소스 소프트웨어입니까?
제 경험상 모든 것이 무료이기 때문에 이것을 물어보는 것입니다.NET Excel 처리 대안에는 여러 가지 이유로 심각한 문제가 있습니다.취미가 있는 것들을 위해, 저는 보통 자바에서 C#로 jExcelApi를 이식하고 사용하게 됩니다.
하지만 이것이 상업적인 애플리케이션이라면, Aspose와 같은 타사 라이브러리를 구매하는 것이 더 나을 것입니다.셀. 저를 믿으세요. 셀은 많은 시간과 시간을 절약할 수 있기 때문에 완전히 가치가 있습니다.
코드:
private void button1_Click(object sender, EventArgs e)
{
textBox1.Enabled=false;
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Excell File |*.xlsx;*,xlsx";
if (ofd.ShowDialog() == DialogResult.OK)
{
string extn = Path.GetExtension(ofd.FileName);
if (extn.Equals(".xls") || extn.Equals(".xlsx"))
{
filename = ofd.FileName;
if (filename != "")
{
try
{
string excelfilename = Path.GetFileName(filename);
}
catch (Exception ew)
{
MessageBox.Show("Errror:" + ew.ToString());
}
}
}
}
C# 애플리케이션 내에서 Excel 파일을 편집하기 위해 최근 NPOI를 사용하기 시작했습니다.저는 그것에 매우 만족합니다.
언급URL : https://stackoverflow.com/questions/464902/how-to-open-an-excel-file-in-c
'prosource' 카테고리의 다른 글
모듈 이름을 문자열로 지정하여 동적으로 가져오려면 어떻게 해야 합니까? (0) | 2023.05.08 |
---|---|
grep을 사용하여 문자열 "hello"가 있는 모든 파일을 현재 디렉터리에서 검색하고 .h 및 .cc 파일만 표시하려면 어떻게 해야 합니까? (0) | 2023.05.08 |
첫 번째 항목이 "ID"인 CSV 파일이 Excel에서 손상되었습니다. (0) | 2023.05.08 |
LINQ - 전체 외부 결합 (0) | 2023.05.08 |
에서 인쇄할 수 없는 문자를 검색하려면 어떻게 해야 합니까?NET? (0) | 2023.05.08 |