웹 내보내기 excel 형식 문제
3846 단어 Excel 내보내기
우선, excel이 웹 페이지에서 도출하는 원리를 알아보겠습니다.이 데이터를 클라이언트에게 보낼 때, 클라이언트 프로그램 (브라우저) 이 excel 형식으로 읽도록 하려고,mime 형식을 다음과 같이 설정합니다.ms-excel, excel이 파일을 읽을 때 모든cell의 형식으로 데이터를 보여줍니다. 만약cell에 규정된 형식이 없다면 excel은 기본 형식으로 이cell의 데이터를 보여줍니다.이렇게 하면 사용자 정의 데이터 형식의 공간을 제공할 수 있습니다. 물론 excel이 지원하는 형식을 사용해야 합니다.다음은 자주 사용하는 형식입니다.
1) 텍스트: vnd.ms-excel.numberformat:@
2) 날짜: vnd.ms-excel.numberformat:yyyy/mm/dd
3) 숫자: vnd.ms-excel.numberformat:#,##0.00
4) 화폐: vnd.ms-excel.numberformat:¥#,##0.00
5) 백분율: vnd.ms-excel.numberformat: #0.00%
이러한 형식은 사용자 정의할 수 있습니다. 예를 들어 연월은 다음과 같이 정의할 수 있습니다. yy-mm 등등.그럼 이 형식들을 알게 됐는데 어떻게 이 형식들을 셀에 추가할 수 있을까요?간단합니다. 우리는 대응하는 탭 쌍 (즉 닫힌 탭) 에 스타일을 추가하기만 하면 됩니다.예를 들어 , 탭에 에 스타일을 추가하면 다음과 같습니다.
<td style="vnd.ms-excel.numberformat:@">410522198402161833</td>
마찬가지로, 우리도 에 양식을 추가할 수도 있고, ,
<table style=’vnd.ms-excel.numberformat:#,##0.00’>
<tr>
<td>542</td>
<td style=’vnd.ms-excel.numberformat: #0.00%’>0.25</td>
</tr>
</table>
그래, 우리가 부모 탭 쌍과 하위 탭 쌍에 모두 스타일을 추가할 때, 데이터는 어떤 스타일로 나타날까?테스트를 통해 데이터와 가장 가까운 양식으로 나타날 것이다. 이것도 우리의 뜻에 부합된다.이렇게 하면 우리는 스타일을 바꾸어 데이터가 excel에서 나타나는 방식을 바꿀 수 있다. (이 스타일 규격은 프론트 페이지에 추가할 수도 있고 백엔드 코드에 해당하는 컨트롤러, 예를 들어 DataGrid 등에 추가할 수도 있다.)만약 당신의 응용이 비교적 간단하다면, 이것은 이미 당신의 요구를 만족시킬 수 있다.그러나 만약 당신의 응용이 비교적 복잡하다면, 당신도 다른 데이터 표현 효과를 얻을 수 있는 방식을 취할 수 있다.다음은 좀 복잡한 응용 프로그램을 들겠습니다.
예를 들어 당신의 데이터는 서로 다른 국가와 지역의 사용자에게 보여야 합니다. 이렇게 하면 데이터의 표현 형식이 달라집니다. 그러면 우리는 어떻게 이 문제를 해결합니까?물론, 당신은 수동으로 이 데이터를 처리할 수 있지만, 이것은 결코 가장 좋은 방법이 아니다. 만약에 우리가 다른 국가나 지역의 사용자를 늘릴 때마다 우리는 모든 데이터를 고객이 요구하는 형식으로 처리해야 하기 때문이다. 데이터의 양이 많을 때, 이것은 의심할 여지없이 매우 무겁고 무료한 일이다.그렇다면 우리는 도대체 이런 문제를 어떻게 해결해야 합니까?다음은 제 생각입니다. 이 포맷된 정보를 하나의 xml 파일에 추출하고 프로그램이 실행될 때 서로 다른 고객에 따라 다른 포맷된 정보를 읽고 이 포맷된 정보를 동태적으로 저희 데이터에 추가합니다. 이렇게 하면 다른 국가나 지역의 사용자가 증가할 때마다 우리는 xml 파일을 하나 더 추가하고 해당하는 포맷된 정보를 이 xml 파일에 기록합니다.그리고 이 국가나 지역의 사용자가 볼 때 대응하는 포맷 정보를 읽어서 데이터에 적용하면 된다.
이상의 이 예는 제가 갑자기 생각한 것입니다. 다국적 기업의 기업이 비슷한 문제에 부딪힐 것이라고 믿습니다. 해결 방법은 여러분에게 아이디어를 제공할 뿐입니다. 벽돌을 던져 옥을 끌어올리는 효과가 있기를 바랍니다.
DataGrid:
Asp.Net WebForm에서 DataGrid를 내보낼 때 ItemDataBound 내에서
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
e.Item.Cells[0].Attributes.Add("style","vnd.ms-excel.numberformat:@");
}
WinForm 내의 경우
Excel.Range range = (Excel.Range)worksheet.Cells[1,1];
range.NumberFormat = Excel.XlParameterDataType.xlParamTypeUnknown;
VB:
If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
e.Item.Cells(1).Attributes.Add("style", "vnd.ms-excel.numberformat:@")
End If
Label의 경우 스타일에 다음을 추가합니다.
<td style="height: 22px; vnd.ms-excel.numberformat:@" bgcolor="#eff3fb">
<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label></td>
Gridview 의 경우 (07.12.13 Update)
click 이벤트 코드를 백그라운드에서 인쇄하려면
// More Codes
string style = @"<style> .text { mso-number-format:\@; } </script> ";
Response.Write(style);
Response.Output.Write(oStringWriter.ToString());
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Excel을 내보내는 다른 방법 공유지난번에 EXCEL을 내보내는 클래스를 공유한 적이 있습니다. 그 클래스는 DataSet 대상을 불러서 데이터베이스를 조회하고 EXCEL로 송금하기만 하면 됩니다.이 안에 GridView의 데이터를 EXCEL로 송금...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.