我是工科学校的法国学生。 我要在公司工作(也是,我也要工作)。
我已经开发了一个将xlsx文件输入的应用程序,我使用了NPOI库。 但是,现在我需要在输入文件中使用csv,我尝试了几项都没有成功。 我只需要将一个csv文件转换为XSSFworkbook和sheet。
我是新手,但我真的想通过c#提高我的能力。
感谢您的帮助。
答案 0 :(得分:0)
我在Github上找到了一个可以帮助您的示例:
class Program
{
static void Main(string[] args)
{
string csvDocument = @"FL_insurance_sample.csv";
var lines = ReadCsv(csvDocument, delimiter: ',');
ConvertWithNPOI("NPOI.xlsx", "NPOI", lines);
}
private static bool ConvertWithNPOI(string excelFileName, string worksheetName, IEnumerable<string[]> csvLines)
{
if (csvLines == null || csvLines.Count() == 0)
{
return (false);
}
int rowCount = 0;
int colCount = 0;
IWorkbook workbook = new XSSFWorkbook();
ISheet worksheet = workbook.CreateSheet(worksheetName);
foreach (var line in csvLines)
{
IRow row = worksheet.CreateRow(rowCount);
colCount = 0;
foreach (var col in line)
{
row.CreateCell(colCount).SetCellValue(TypeConverter.TryConvert(col));
colCount++;
}
rowCount++;
}
using (FileStream fileWriter = File.Create(excelFileName))
{
workbook.Write(fileWriter);
fileWriter.Close();
}
worksheet = null;
workbook = null;
return true;
}
private static bool ConvertWithEPPlus(string csvFileName, string excelFileName, string worksheetName, char delimiter = ';')
{
bool firstRowIsHeader = false;
var format = new ExcelTextFormat();
format.Delimiter = delimiter;
format.EOL = "\r"; // DEFAULT IS "\r\n";
// format.TextQualifier = '"';
using (ExcelPackage package = new ExcelPackage(new FileInfo(excelFileName)))
{
ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(worksheetName);
worksheet.Cells["A1"].LoadFromText(new FileInfo(csvFileName), format, OfficeOpenXml.Table.TableStyles.Medium27, firstRowIsHeader);
package.Save();
}
return (true);
}
private static IEnumerable<string[]> ReadCsv(string fileName, char delimiter = ';')
{
var lines = System.IO.File.ReadAllLines(fileName, Encoding.UTF8).Select(a => a.Split(delimiter));
return (lines);
}
}
原始topic