Mình đang muốn export datagridview ra một file excel và hiển thị ra màn hình, nhưng cứ dạy đến dòng này thì VS báo có lỗi, tìm trên mạng cả buổi sáng vẫn không rõ nguồn gốc lỗi trong trường hợp của mình là gì (đã add thư viên, add references, cài Office,..)
Mình đã search google và có cách khác để export mà không cần hiển thị ra màn hình, chỉ chọn nơi save file lại, nhưng khi đọc file thì các ô đánh chữ tiếng Việt bị lỗi font hết.
Mong mọi người góp ý cách giải quyết cho 2 tình huống trên.
Mình đã search google và có cách khác để export mà không cần hiển thị ra màn hình, chỉ chọn nơi save file lại, nhưng khi đọc file thì các ô đánh chữ tiếng Việt bị lỗi font hết.
Code:
private void ToCsV(DataGridView dGV, string filename) { string stOutput = ""; // Export titles: string sHeaders = ""; for (int j = 0; j < dGV.Columns.Count; j++) sHeaders = sHeaders.ToString() + Convert.ToString(dGV.Columns[j].HeaderText) + "\t"; stOutput += sHeaders + "\r\n"; // Export data. for (int i = 0; i < dGV.RowCount - 1; i++) { string stLine = ""; for (int j = 0; j < dGV.Rows[i].Cells.Count; j++) stLine = stLine.ToString() + dGV.Rows[i].Cells[j].Value.ToString() + "\t"; stOutput += stLine + "\r\n"; } Encoding utf16 = Encoding.GetEncoding(1254); byte[] output = utf16.GetBytes(stOutput); FileStream fs = new FileStream(filename, FileMode.Create); BinaryWriter bw = new BinaryWriter(fs); bw.Write(output, 0, output.Length); //write the encoded file bw.Flush(); bw.Close(); fs.Close(); } private void btn_xuatdsNV_Click(object sender, EventArgs e) { SaveFileDialog sfd = new SaveFileDialog(); sfd.Filter = "Excel Documents (*.xls)|*.xls"; sfd.FileName = "export.xls"; if (sfd.ShowDialog() == DialogResult.OK) { //ToCsV(dataGridView1, @"c:\export.xls"); ToCsV(nHANVIEN_DTODataGridView, sfd.FileName); // Here dataGridview1 is your grid view name } }
Comment