파일 형식과 확장자가 일치하지 않는 문제를 해결하는 방법은 무엇입니까?
나는 c#에 엑셀 파일을 만들고 저장하는 코드를 만들었습니다.코드는 Excel 파일을 성공적으로 만들고 저장할 수 있지만 생성된 Excel 파일을 열면 다음과 같은 경고 메시지가 표시됩니다.
파일 형식 및 '파일 이름'의 확장자입니다.xls가 일치하지 않습니다.파일이 손상되었거나 안전하지 않을 수 있습니다.소스를 신뢰하지 않는 한 열지 마십시오.그래도 열어보시겠습니까?
다음 코드를 사용하고 있습니다.
private void button1_Click(object sender, EventArgs e)
{
saveFileDialogSummary.Filter = "Excel Flie|*.xls";
saveFileDialogSummary.FilterIndex = 0;
saveFileDialogSummary.RestoreDirectory = true;
saveFileDialogSummary.CreatePrompt = true;
saveFileDialogSummary.Title = "Export Excel File To";
Excel.Application ExcelApp = new Excel.Application();
ExcelApp.Application.Workbooks.Add(Type.Missing);
ExcelApp.Columns.ColumnWidth = 30;
for (int i = 0; i < dataGridViewSummary.Rows.Count; i++)
{
DataGridViewRow row = dataGridViewSummary.Rows[i];
for (int j = 0; j < row.Cells.Count; j++)
{
ExcelApp.Cells[i + 1, j + 1] = row.Cells[j].ToString();
}
}
DialogResult res = saveFileDialogSummary.ShowDialog();
if(res == DialogResult.OK){
ExcelApp.ActiveWorkbook.SaveCopyAs(saveFileDialogSummary.FileName);
ExcelApp.ActiveWorkbook.Saved = true;
ExcelApp.Quit();
}
}
경고 메시지를 받지 않으려면 어떻게 해야 합니까?
지금쯤이면 이 문제가 해결될 수도 있지만 코드를 수정하지 않고 도움을 주려는 것만으로도 의 .xls 형식을 사용할 수 있으며 레지스트리를 설정하여 파일을 여는 동안 이 경고를 표시하지 않을 수 있습니다.레지스트리 열기, 탐색HKEY_CURRENT_USER\Software\Microsoft\Office\14\Excel\Security
작성DWord
이름이 붙은ExtensionHardening
값을 0으로 설정합니다.
이로 인해 시스템이 취약해질 수 있지만 조직 네트워크에서 작업할 때는 최소한 문서 및 소스 유형을 다운로드하는 것이 확실할 때는 큰 문제가 되지 않습니다.
최신 사무실이 설치되어 있으면 .xls를 .xlsx로 변경하기만 하면 됩니다.
파일 확장명 .xls 및 .xlsx 파일에 서로 다른 레이아웃이 포함되어 있습니다..xls 확장자는 버전 2003에서 사용하는 반면 .xlsx 확장자는 사용됩니다.
Excel 파일을 .xlsx 형식으로 내보내야 합니다.제가 사용한 모든 버전을 지원할 것입니다.
아래 DLS를 bin 폴더에 추가
ClosedXML.dll
문서 형식입니다.OpenXml.dll
.xlsx로 내보낼 코드
DataTable dt = new DataTable();
//Create column and inser rows
using (XLWorkbook wb = new XLWorkbook())
{
var ws = wb.Worksheets.Add(dt, Sheetname);
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Buffer = true;
HttpContext.Current.Response.Charset = "";
HttpContext.Current.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=" + p_FileName + ".xlsx");
using (MemoryStream MyMemoryStream = new MemoryStream())
{
wb.SaveAs(MyMemoryStream);
MyMemoryStream.WriteTo(HttpContext.Current.Response.OutputStream);
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.End();
}
}
"파일 형식과 확장자가 일치하지 않음"에 대한 해결책은 파일에 필요한 모든 문서를 작성한 후 마침내 워크북**($workbook->close;)**를 닫는 것입니다.
저는 메일에서 "XLS" 파일을 열 때도 같은 문제에 직면했습니다.나는 파일을 만들고 내 모든 것을 삽입했고 워크북을 닫지 않고 첨부파일로 메일을 보냅니다.나중에 저는 워크북을 닫고 첨부 파일로 보내야 한다는 것을 깨달았습니다.
언급URL : https://stackoverflow.com/questions/28403642/how-to-fix-file-format-and-extension-dont-match
'bestsource' 카테고리의 다른 글
선택한 워크시트를 excel 파일에서 pdf로 파이썬으로 인쇄 (0) | 2023.08.07 |
---|---|
npm WARN에서 더 이상 사용되지 않는 core-js@2.6.11: core-js@<3은 더 이상 유지 관리되지 않으며 문제의 수 때문에 사용하지 않는 것이 좋습니다. (0) | 2023.08.07 |
'root'@'localhost' 사용자(암호 사용: YES)에 대한 액세스가 거부되었습니다(Mysql::오류) (0) | 2023.08.07 |
파이썬에서 모듈과 라이브러리의 차이점은 무엇입니까? (0) | 2023.08.07 |
MySQL 테이블의 존재 여부 확인 (0) | 2023.08.07 |