. net 에서 NPOI 나 MyXLs 를 사용 하여 DataTable 을 Excel 로 내 보 냅 니 다.
34456 단어 Datatable
Excel :
.net DataTable Excel , 。 :
:
asp.net, Office, M , , , ASP.net COM+, 。
Excel , , , 000, 000123 123, , 。 , , 。
, "-" "=" ,Excel , , : , Sheet1
:
Excel Excel 8 , 8 , , , , , 1.42702E+17 , , , Excel , , 。
, , , , , , 。
Excel :
NPOI MyXls, , Excel , : .net , Excel , Office Excel, ASP.net Winform , Excel , , , , “Excel ”, , Excel , , ,NPOI || MyXls == Excel。
NPOI :http://npoi.codeplex.com/
NPOI :http://www.cnblogs.com/tonyqus/archive/2009/04/12/1434209.html
MyXls :http://sourceforge.net/projects/myxls/
:
MyXls :
1 /// <summary>
2 /// MyXls Demo,
3 /// </summary>
4 /// <param name="dtSource"></param>
5 /// <param name="strFileName"></param>
6 /// <remarks>MyXls Excel :(1,1)</remarks>
7 /// <Author> http://www.yongfa365.com/ 2010-5-8 22:21:41</Author>
8 public static void ExportEasy(DataTable dtSource, string strFileName)
9 {
10 XlsDocument xls = new XlsDocument();
11 Worksheet sheet = xls.Workbook.Worksheets.Add("Sheet1");
12
13 //
14 foreach (DataColumn col in dtSource.Columns)
15 {
16 sheet.Cells.Add(1, col.Ordinal + 1, col.ColumnName);
17 }
18
19 //
20 for (int i = 0; i < dtSource.Rows.Count; i++)
21 {
22 for (int j = 0; j < dtSource.Columns.Count; j++)
23 {
24 sheet.Cells.Add(i + 2, j + 1, dtSource.Rows[i][j].ToString());
25 }
26 }
27
28 //
29 xls.FileName = strFileName;
30 xls.Save();
31 }
NPOI :
1 /// <summary>
2 /// NPOI Demo,
3 /// </summary>
4 /// <param name="dtSource"></param>
5 /// <param name="strFileName"></param>
6 /// <remarks>NPOI Excel :(0,0)</remarks>
7 /// <Author> http://www.yongfa365.com/ 2010-5-8 22:21:41</Author>
8 public static void ExportEasy(DataTable dtSource, string strFileName)
9 {
10 HSSFWorkbook workbook = new HSSFWorkbook();
11 HSSFSheet sheet = workbook.CreateSheet();
12
13 //
14 HSSFRow dataRow = sheet.CreateRow(0);
15 foreach (DataColumn column in dtSource.Columns)
16 {
17 dataRow.CreateCell(column.Ordinal).SetCellValue(column.ColumnName);
18 }
19
20
21 //
22 for (int i = 0; i < dtSource.Rows.Count; i++)
23 {
24 dataRow = sheet.CreateRow(i + 1);
25 for (int j = 0; j < dtSource.Columns.Count; j++)
26 {
27 dataRow.CreateCell(j).SetCellValue(dtSource.Rows[i][j].ToString());
28 }
29 }
30
31
32 //
33 using (MemoryStream ms = new MemoryStream())
34 {
35 using (FileStream fs = new FileStream(strFileName, FileMode.Create, FileAccess.Write))
36 {
37 workbook.Write(fs);
38 }
39 }
40 workbook.Dispose();
41 }
(yongfa365)'Blog , ( NPOI):
1. web winform DataTable Excel。
2. 。
3. , 。
4. 65535 。
5. 。
6. Excel。
7. , OK 。
8. MyXls NPOI 3 , NPOI , , NPOI 。
MyXls :
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using org.in2bits.MyXls;
6 using org.in2bits.MyXls.ByteUtil;
7 using System.Data;
8
9 class ExcelHelper
10 {
11 public static void Export(DataTable dtSource, string strHeaderText, string strFileName)
12 {
13 XlsDocument xls = new XlsDocument();
14 xls.FileName = DateTime.Now.ToString("yyyyMMddHHmmssffff", System.Globalization.DateTimeFormatInfo.InvariantInfo);
15 xls.SummaryInformation.Author = "yongfa365"; // xls
16 xls.SummaryInformation.NameOfCreatingApplication = "liu yongfa"; // xls
17 xls.SummaryInformation.LastSavedBy = "LastSavedBy"; // xls
18 xls.SummaryInformation.Comments = "Comments"; // xls
19 xls.SummaryInformation.Title = "title"; // xls
20 xls.SummaryInformation.Subject = "Subject";//
21 xls.DocumentSummaryInformation.Company = "company";//
22
23
24 Worksheet sheet = xls.Workbook.Worksheets.Add("Sheet1");//
25 Cells cells = sheet.Cells;
26
27 foreach (DataColumn col in dtSource.Columns)
28 {
29 Cell cell = cells.Add(1, col.Ordinal + 1, col.ColumnName);
30 cell.Font.FontFamily = FontFamilies.Roman; //
31 cell.Font.Bold = true; //
32
33 }
34 #region
35 XF dateStyle = xls.NewXF();
36 dateStyle.Format = "yyyy-mm-dd";
37
38 for (int i = 0; i < dtSource.Rows.Count; i++)
39 {
40 for (int j = 0; j < dtSource.Columns.Count; j++)
41 {
42
43 int rowIndex = i + 2;
44 int colIndex = j + 1;
45 string drValue = dtSource.Rows[i][j].ToString();
46
47 switch (dtSource.Rows[i][j].GetType().ToString())
48 {
49 case "System.String"://
50 cells.Add(rowIndex, colIndex, drValue);
51 break;
52 case "System.DateTime"://
53 DateTime dateV;
54 DateTime.TryParse(drValue, out dateV);
55 cells.Add(rowIndex, colIndex, dateV, dateStyle);
56 break;
57 case "System.Boolean"://
58 bool boolV = false;
59 bool.TryParse(drValue, out boolV);
60 cells.Add(rowIndex, colIndex, boolV);
61 break;
62 case "System.Int16"://
63 case "System.Int32":
64 case "System.Int64":
65 case "System.Byte":
66 int intV = 0;
67 int.TryParse(drValue, out intV);
68 cells.Add(rowIndex, colIndex, intV);
69 break;
70 case "System.Decimal"://
71 case "System.Double":
72 double doubV = 0;
73 double.TryParse(drValue, out doubV);
74 cells.Add(rowIndex, colIndex, doubV);
75 break;
76 case "System.DBNull"://
77 cells.Add(rowIndex, colIndex, null);
78 break;
79 default:
80 cells.Add(rowIndex, colIndex, null);
81 break;
82 }
83 }
84 }
85
86 #endregion
87
88 xls.FileName = strFileName;
89 xls.Save();
90 }
91 }
92
NPOI :
1 using System;
2 using System.Collections.Generic;
3 using System.Data;
4 using System.IO;
5 using System.Text;
6 using System.Web;
7 using NPOI;
8 using NPOI.HPSF;
9 using NPOI.HSSF;
10 using NPOI.HSSF.UserModel;
11 using NPOI.HSSF.Util;
12 using NPOI.POIFS;
13 using NPOI.Util;
14
15
16 public class ExcelHelper
17 {
18 /// <summary>
19 /// DataTable Excel
20 /// </summary>
21 /// <param name="dtSource"> DataTable</param>
22 /// <param name="strHeaderText"> </param>
23 /// <param name="strFileName"> </param>
24 /// <Author> http://www.yongfa365.com/ 2010-5-8 22:21:41</Author>
25 public static void Export(DataTable dtSource, string strHeaderText, string strFileName)
26 {
27 using (MemoryStream ms = Export(dtSource, strHeaderText))
28 {
29 using (FileStream fs = new FileStream(strFileName, FileMode.Create, FileAccess.Write))
30 {
31 byte[] data = ms.ToArray();
32 fs.Write(data, 0, data.Length);
33 fs.Flush();
34 }
35 }
36 }
37
38 /// <summary>
39 /// DataTable Excel MemoryStream
40 /// </summary>
41 /// <param name="dtSource"> DataTable</param>
42 /// <param name="strHeaderText"> </param>
43 /// <Author> http://www.yongfa365.com/ 2010-5-8 22:21:41</Author>
44 public static MemoryStream Export(DataTable dtSource, string strHeaderText)
45 {
46 HSSFWorkbook workbook = new HSSFWorkbook();
47 HSSFSheet sheet = workbook.CreateSheet();
48
49 #region
50 {
51 DocumentSummaryInformation dsi = PropertySetFactory.CreateDocumentSummaryInformation();
52 dsi.Company = "http://www.yongfa365.com/";
53 workbook.DocumentSummaryInformation = dsi;
54
55 SummaryInformation si = PropertySetFactory.CreateSummaryInformation();
56 si.Author = " "; // xls
57 si.ApplicationName = "NPOI "; // xls
58 si.LastAuthor = " 2"; // xls
59 si.Comments = " "; // xls
60 si.Title = "NPOI "; // xls
61 si.Subject = "NPOI Demo";//
62 si.CreateDateTime = DateTime.Now;
63 workbook.SummaryInformation = si;
64 }
65 #endregion
66
67 HSSFCellStyle dateStyle = workbook.CreateCellStyle();
68 HSSFDataFormat format = workbook.CreateDataFormat();
69 dateStyle.DataFormat = format.GetFormat("yyyy-mm-dd");
70
71 //
72 int[] arrColWidth = new int[dtSource.Columns.Count];
73 foreach (DataColumn item in dtSource.Columns)
74 {
75 arrColWidth[item.Ordinal] = Encoding.GetEncoding(936).GetBytes(item.ColumnName.ToString()).Length;
76 }
77 for (int i = 0; i < dtSource.Rows.Count; i++)
78 {
79 for (int j = 0; j < dtSource.Columns.Count; j++)
80 {
81 int intTemp = Encoding.GetEncoding(936).GetBytes(dtSource.Rows[i][j].ToString()).Length;
82 if (intTemp > arrColWidth[j])
83 {
84 arrColWidth[j] = intTemp;
85 }
86 }
87 }
88
89
90
91 int rowIndex = 0;
92
93 foreach (DataRow row in dtSource.Rows)
94 {
95 #region , , ,
96 if (rowIndex == 65535 || rowIndex == 0)
97 {
98 if (rowIndex != 0)
99 {
100 sheet = workbook.CreateSheet();
101 }
102
103 #region
104 {
105 HSSFRow headerRow = sheet.CreateRow(0);
106 headerRow.HeightInPoints = 25;
107 headerRow.CreateCell(0).SetCellValue(strHeaderText);
108
109 HSSFCellStyle headStyle = workbook.CreateCellStyle();
110 headStyle.Alignment = CellHorizontalAlignment.CENTER;
111 HSSFFont font = workbook.CreateFont();
112 font.FontHeightInPoints = 20;
113 font.Boldweight = 700;
114 headStyle.SetFont(font);
115
116 headerRow.GetCell(0).CellStyle = headStyle;
117
118 sheet.AddMergedRegion(new Region(0, 0, 0, dtSource.Columns.Count - 1));
119 headerRow.Dispose();
120 }
121 #endregion
122
123
124 #region
125 {
126 HSSFRow headerRow = sheet.CreateRow(1);
127
128
129 HSSFCellStyle headStyle = workbook.CreateCellStyle();
130 headStyle.Alignment = CellHorizontalAlignment.CENTER;
131 HSSFFont font = workbook.CreateFont();
132 font.FontHeightInPoints = 10;
133 font.Boldweight = 700;
134 headStyle.SetFont(font);
135
136
137 foreach (DataColumn column in dtSource.Columns)
138 {
139 headerRow.CreateCell(column.Ordinal).SetCellValue(column.ColumnName);
140 headerRow.GetCell(column.Ordinal).CellStyle = headStyle;
141
142 //
143 sheet.SetColumnWidth(column.Ordinal, (arrColWidth[column.Ordinal] + 1) * 256);
144
145 }
146 headerRow.Dispose();
147 }
148 #endregion
149
150 rowIndex = 2;
151 }
152 #endregion
153
154
155 #region
156 HSSFRow dataRow = sheet.CreateRow(rowIndex);
157 foreach (DataColumn column in dtSource.Columns)
158 {
159 HSSFCell newCell = dataRow.CreateCell(column.Ordinal);
160
161 string drValue = row[column].ToString();
162
163 switch (column.DataType.ToString())
164 {
165 case "System.String"://
166 newCell.SetCellValue(drValue);
167 break;
168 case "System.DateTime"://
169 DateTime dateV;
170 DateTime.TryParse(drValue, out dateV);
171 newCell.SetCellValue(dateV);
172
173 newCell.CellStyle = dateStyle;//
174 break;
175 case "System.Boolean"://
176 bool boolV = false;
177 bool.TryParse(drValue, out boolV);
178 newCell.SetCellValue(boolV);
179 break;
180 case "System.Int16"://
181 case "System.Int32":
182 case "System.Int64":
183 case "System.Byte":
184 int intV = 0;
185 int.TryParse(drValue, out intV);
186 newCell.SetCellValue(intV);
187 break;
188 case "System.Decimal"://
189 case "System.Double":
190 double doubV = 0;
191 double.TryParse(drValue, out doubV);
192 newCell.SetCellValue(doubV);
193 break;
194 case "System.DBNull"://
195 newCell.SetCellValue("");
196 break;
197 default:
198 newCell.SetCellValue("");
199 break;
200 }
201
202 }
203 #endregion
204
205 rowIndex++;
206 }
207
208
209 using (MemoryStream ms = new MemoryStream())
210 {
211 workbook.Write(ms);
212 ms.Flush();
213 ms.Position = 0;
214
215 sheet.Dispose();
216 //workbook.Dispose();// OK , , sheet
217 return ms;
218 }
219
220 }
221
222
223 /// <summary>
224 /// Web
225 /// </summary>
226 /// <param name="dtSource"> DataTable</param>
227 /// <param name="strHeaderText"> </param>
228 /// <param name="strFileName"> </param>
229 /// <Author> http://www.yongfa365.com/ 2010-5-8 22:21:41</Author>
230 public static void ExportByWeb(DataTable dtSource, string strHeaderText, string strFileName)
231 {
232
233 HttpContext curContext = HttpContext.Current;
234
235 //
236 curContext.Response.ContentType = "application/vnd.ms-excel";
237 curContext.Response.ContentEncoding = Encoding.UTF8;
238 curContext.Response.Charset = "";
239 curContext.Response.AppendHeader("Content-Disposition",
240 "attachment;filename=" + HttpUtility.UrlEncode(strFileName, Encoding.UTF8));
241
242 curContext.Response.BinaryWrite(Export(dtSource, strHeaderText).GetBuffer());
243 curContext.Response.End();
244
245 }
246
247
248 /// <summary> excel
249 ///
250 /// </summary>
251 /// <param name="strFileName">excel </param>
252 /// <returns></returns>
253 public static DataTable Import(string strFileName)
254 {
255 DataTable dt = new DataTable();
256
257 HSSFWorkbook hssfworkbook;
258 using (FileStream file = new FileStream(strFileName, FileMode.Open, FileAccess.Read))
259 {
260 hssfworkbook = new HSSFWorkbook(file);
261 }
262 HSSFSheet sheet = hssfworkbook.GetSheetAt(0);
263 System.Collections.IEnumerator rows = sheet.GetRowEnumerator();
264
265 HSSFRow headerRow = sheet.GetRow(0);
266 int cellCount = headerRow.LastCellNum;
267
268 for (int j = 0; j < cellCount; j++)
269 {
270 HSSFCell cell = headerRow.GetCell(j);
271 dt.Columns.Add(cell.ToString());
272 }
273
274 for (int i = (sheet.FirstRowNum + 1); i <= sheet.LastRowNum; i++)
275 {
276 HSSFRow row = sheet.GetRow(i);
277 DataRow dataRow = dt.NewRow();
278
279 for (int j = row.FirstCellNum; j < cellCount; j++)
280 {
281 if (row.GetCell(j) != null)
282 dataRow[j] = row.GetCell(j).ToString();
283 }
284
285 dt.Rows.Add(dataRow);
286 }
287 return dt;
288 }
289
290 }
:
http://download.csdn.net/source/2330821
:
NPOI Excel ( ):http://www.cnblogs.com/zhengjuzhuan/archive/2010/02/01/1661103.html
Server Excel :NPOI Library:http://msdn.microsoft.com/zh-tw/ee818993.aspx
ASP.NET NPOI Excel:http://www.cnblogs.com/niunan/archive/2010/03/30/1700706.html
:
, , NPOI MyXls Excel , , NPOI MyXls 。 , 。 NPOI , , , 。 Excel, MyXls , NPOI。MyXls Cell.Font.Bold , NPOI CellType 。
:.net NPOI MyXls DataTable Excel
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
yui--datatable 행 추가 형식텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.