Excel interop으로 저장 대화 상자를 표시하지 않고 워크북을 저장하는 방법은 무엇입니까?
다음을 내보내는 콘솔 응용 프로그램을 만들어야 합니다.DataSet엑셀로문제는 저장 창이 팝업되지 않고 자동으로 Excel 파일을 만들어야 한다는 것입니다.지금까지 저는 다음과 같은 코드를 가지고 있지만, 자동으로 저장하는 방법을 모르겠습니다.도움을 주시면 감사하겠습니다.
public static void CreateWorkbook(DataSet ds, String path)
{
int rowindex = 0;
int columnindex = 0;
Microsoft.Office.Interop.Excel.Application wapp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Worksheet wsheet;
Microsoft.Office.Interop.Excel.Workbook wbook;
wapp.Visible = false;
wbook = wapp.Workbooks.Add(true);
wsheet = (Worksheet)wbook.ActiveSheet;
try
{
for (int i = 0; i < ds.Tables[0].Columns.Count; i++)
{
wsheet.Cells[1, i + 1] = ds.Tables[0].Columns[i].ColumnName;
}
foreach (DataRow row in ds.Tables[0].Rows)
{
rowindex++;
columnindex = 0;
foreach (DataColumn col in ds.Tables[0].Columns)
{
columnindex++;
wsheet.Cells[rowindex + 1, columnindex] = row[col.ColumnName];
}
}
}
catch (Exception ex)
{
String err = ex.Message;
}
wapp.UserControl = true;
}
에 대한 모든 인수WorkBook.SaveAs()선택 사항이지만 사용할 수 있습니다.Type.Missing당신이 원한다면 그들 대부분을 위해.
일반적인 통화 내용은 다음과 같습니다.
wbook.SaveAs("c:\\temp\\blah", Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookDefault, Type.Missing, Type.Missing,
false, false, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
wbook.Close();
파일 확장명을 포함하지 않았습니다. Excel에서 설정해 드릴 것입니다.
워크북.다른 이름으로 저장 방법(Microsoft).사무실.Tools.Excel) | Microsoft Docs는 각 인수를 설명합니다.
전화를 걸어 보십시오.SaveAs워크북의 방법입니다.모수 로트의 경우 합격을 시도합니다.Type.Missing첫 번째(파일 이름)를 제외한 모든 매개 변수에 적용됩니다.
더하다ConflictResolution로.XlSaveConflictResolution.xlLocalSessionChanges
응용 프로그램의 설정DisplayAlerts에 대한 재산.false창문이 안 보이게요
m_xlApp.DisplayAlerts = false;
// Quit Excel and clean up.
m_xlWorkbook.SaveAs(Filename: m_xlFilePath, FileFormat: excelFileExtension,
Password: false, ReadOnlyRecommended: XlSaveAsAccessMode.xlNoChange,
ConflictResolution: XlSaveConflictResolution.xlLocalSessionChanges);
m_xlWorkbook.Close();
XlSaveConflictResolutionEnum(Microsoft)을 참조하십시오.사무실.인터럽트.Excel) | 자세한 내용은 Microsoft 문서를 참조하십시오.
MSDN 설명서 참조
wbook.SaveAs(...);
wapp.DisplayAlerts = false;
속성 설정false모든 워크북에 대한 모든 알림 표시를 중지합니다.
사용하다open xml sdk자동화 대신 문서를 생성합니다. 훨씬 더 안정적입니다.
디스플레이 사용속성을 경고합니다.그것은 매우 간단하고 빠릅니다.
private void SaveAs(Excel.Workbook WorkBook, string FileName)
{
m_Saving = true;
try
{
if (Global.CreatingCopy)
this.ExcelApp.DisplayAlerts = false;
WorkBook.SaveAs(FileName);
}
finally
{
m_Saving = false;
if (this.ExcelApp.DisplayAlerts == false)
this.ExcelApp.DisplayAlerts = true;
}
}
파일을 저장할 때 Excel에서 파일 종류를 정의하지 마십시오.왜냐하면 형식이 변경될 가능성이 있기 때문입니다.
원본 문서가 .xls이고 현재 사용자가 .xlsx의 기본 형식인 Office 2013을 가지고 있다면 Excel은 파일을 .xlsx로 변환하고 Excel 2010 또는 상위 버전이 없는 사용자는 파일을 열 수 없습니다.
언급URL : https://stackoverflow.com/questions/7012705/how-to-save-workbook-without-showing-save-dialog-with-excel-interop
'codememo' 카테고리의 다른 글
| Mariadb 할당된 메모리 구성 (0) | 2023.09.05 |
|---|---|
| 크롬/오페라에서 CSS3 둥근 모서리가 오버플로를 숨기도록 만드는 방법 (0) | 2023.09.05 |
| 특정 디본 클릭으로 부드럽게 스크롤 (0) | 2023.09.05 |
| 여러 도커 합성 프로젝트 간의 통신 (0) | 2023.09.05 |
| 쿼리 패킷 PID를 보내는 동안 Mariadb max 오류가 발생했습니다. (0) | 2023.09.05 |