둘러 보았습니다. 대부분 내 문제보다 복잡한 문제에 대한 예가 있습니다.Excel에 쓰기 : EPPLUS로 닫힌 스트림에 액세스 할 수 없습니다.
그래서 성능 향상으로 인해 EXCEL INTEROP가 아닌 EPPLUS를 사용하도록 제안되었습니다. 이것은 처음 사용했을 때였고 처음으로 메모리 스트림을 만났기 때문에 여기서 어떤 점이 잘못되었는지 확실하지 않습니다. Excel 파일에 쓰고 해당 Excel 파일을 PDF로 변환하려고합니다. 이건 내 코드입니다
- EPPLUS
- EPPLUSExcel : DataGridView를 각 행에 대해
if (DGVmain.RowCount > 0) { //Source OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "Excel Files|*.xls;*.xlsx"; openFileDialog.ShowDialog(); lblSuccess.Text = openFileDialog.FileName; lblPathings = Path.ChangeExtension(openFileDialog.FileName, null); int count = DGVmain.RowCount; int current = 0; int ballast = 0;
에 쓰기를 수행이를 위해, 나는 다음과 같은 NUGET 통해 설치 Excel로 변환 한 다음 PDF로 변환하십시오.
using (ExcelPackage p = new ExcelPackage()) { using (FileStream stream = new FileStream(lblSuccess.Text, FileMode.Open)) { ballast++; lblItem.Text = "Item #" + ballast; p.Load(stream); ExcelWorkbook WB = p.Workbook; if (WB != null) { if (WB.Worksheets.Count > 0) { ExcelWorksheet WS = WB.Worksheets.First(); WS.Cells[82, 12].Value = drag13; WS.Cells[84, 12].Value = ""; WS.Cells[86, 12].Value = 0; //========================== Form WS.Cells[95, 5].Value = drag26; WS.Cells[95, 15].Value = drag27; WS.Cells[95, 24].Value = drag28; WS.Cells[95, 33].Value = drag29; //========================== Right-Seid WS.Cells[14, 31].Value = drag27; WS.Cells[17, 31].Value = drag27; } } Byte[] bin = p.GetAsByteArray(); File.WriteAllBytes(lblPathings, bin); } p.Save(); } } catch (Exception ex) { MessageBox.Show("Write Excel: " + ex.Message); }
별도의 방법은 EPPLUSEXCEL 및 SpireXLS을 활용, PDF로 변환 : 뭔가 잘못 될 것으로 기대 곳에있다
foreach (DataGridViewRow row in DGVmain.Rows) { //Drag if (lblSuccess.Text == null) return; string drags = Convert.ToString(row.Cells[0].Value); string dragsy = Convert.ToString(row.Cells[1].Value); Persona = drag; generateID(); //Initialize the Excel File try {
이다.
finally { ConvertToPdf(lblSuccess.Text, finalformat); } } }
컴파일러는 제목에 언급 된 것을 제외하고는 오류를 던지지 않습니다.
맞습니다. 오류는 사라졌지 만, 이제는 새로운 문제가 발생하는 것 같습니다. 코드는 아무 것도하지 않는 것처럼 보이지만, 컴파일러는 코드가 너무 오래 실행되어 아무 일도 일어나지 않는다고 말하면서 휴식을 취합니다 ... 오류는 실제로 도움이되지 않습니다 ... 그 동안에 저는 ' 그것에 대해 읽을거야. – Arvayne
문제가 해결되었습니다! PDF에 대한 EPPLUS가 파일 유형 .XLSX를 지원하지 않기 때문에 오류가 pdf 로의 변환으로 인해 발생했습니다! – Arvayne