JAVA将一个excel导入多张表_将具有多个选项卡的多个Excel工作表导入到matlab中

大家好,祝大家好

我正在尝试将一些带有多个标签的Excel工作表导入到matlab中 . 为此,我写了一个小循环但经过多次尝试和调整仍然无法将所有数据都输入到matlab中 . 在源目录中,我有15个excel表,其中包含8个选项卡,每个选项卡包含52 x 102单元格中的数据 . 数据采用带符号的形式,包含正值和负值 . 下面是我正在处理的代码,我应用了我在互联网上找到的不同变化,但没有成功 .

srcdir = 'path to the folder';

srcfiles = dir(fullfile(srcdir, '*.xls'));

for i = 1:length(srcfiles)

[status,sheets] = xlsfinfo(srcfiles(i));

for s = 1:numel(sheets)

[data,titles]=xlsread(srcfiles(i).name,sheets{s});

end

end

现在我收到此错误“文件名必须是一个字符串” . 我甚至试图将它更改为char to string但仍然无法正常工作 .

只有一次工作当我没有在源目录中给出路径,即srcdir时,直接在xlsread()中给出了文件的名称 .

任何人都可以帮助我在哪里犯错误吗?谢谢

以下是Java导入Excel到数据库多张表的示例代码: ```java import java.io.File; import java.io.FileInputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.Iterator; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook;import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class ExcelImporter { public static void main(String[] args) { String excelFilePath = "path/to/excel/file.xlsx"; try { FileInputStream inputStream = new FileInputStream(new File(excelFilePath)); Workbook workbook = new XSSFWorkbook(inputStream); Iterator<Sheet> sheetIterator = workbook.iterator(); while (sheetIterator.hasNext()) { Sheet sheet = sheetIterator.next(); String tableName = sheet.getSheetName(); Iterator<Row> rowIterator = sheet.iterator(); while (rowIterator.hasNext()) { Row row = rowIterator.next(); Iterator<Cell> cellIterator = row.cellIterator(); // 获取数据库连接 Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/database", "username", "password"); // 构建插入语句 StringBuilder sql = new StringBuilder(); sql.append("INSERT INTO ").append(tableName).append(" VALUES ("); for (int i = 0; i < row.getLastCellNum(); i++) { sql.append("?,"); } sql.deleteCharAt(sql.length() - 1); sql.append(")"); // 创建预编译语句 PreparedStatement statement = connection.prepareStatement(sql.toString()); int cellIndex = 0; while (cellIterator.hasNext()) { Cell cell = cellIterator.next(); statement.setString(cellIndex + 1, cell.getStringCellValue()); cellIndex++; } // 执行插入语句 statement.executeUpdate(); // 关闭连接和语句 statement.close(); connection.close(); } } workbook.close(); inputStream.close(); System.out.println("Excel导入到数据库成功!"); } catch (Exception e) { e.printStackTrace(); } } } ``` 请注意,上述代码的数据库连接信息需要根据实际情况进行修改。此外,还需要添加Apache POI和MySQL驱动的依赖。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值